On Mon, May 20, 2013 at 10:40:40AM -0600, Sandra Loosemore wrote:
> This patch is a revised version of one previously posted by Pat
> Wellander a couple of years ago, to align arrays of size >= 16 bytes
> on a 16-byte boundary to make better use of Altivec instructions.
> 
> http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01345.html
> 
> The original patch only increased the alignment of local arrays,
> which works because the stack is already aligned at 16 bytes for
> Altivec.  The comments on the original patch submission were that
> this should apply to all arrays and that it should also look for
> structs containing arrays that would benefit from being
> 16-byte-aligned as well.  I've made both those changes here, and
> enabled the additional alignment only when not -Os to address
> concerns about wasting memory.
> 
> I noted that the additional alignment of static arrays is partially
> redundant with existing generic vector optimizations; I xfailed a
> couple of tests that were failing because there was nothing left for
> those passes to do any more.
> 
> I regression-tested this on powerpc-none-eabi.  OK to commit?

Isn't this ABI incompatible change?  See http://gcc.gnu.org/PR56564
for more info (yeah, different target, but looks exactly the same issue).
If what this new DATA_ALIGNMENT value is optimization rather than an ABI
requirement, then you'll hit the same issue.

        Jakub

Reply via email to