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