On Tue, Aug 7, 2012 at 4:56 PM, Ulrich Weigand <uweig...@de.ibm.com> wrote: > Richard Guenther wrote: >> On Fri, Jul 27, 2012 at 5:24 PM, Ulrich Weigand <uweig...@de.ibm.com> wrote: >> > ChangeLog: >> > >> > * target.def (vector_alignment): New target hook. >> > * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook. >> > * doc/tm.texi: Regenerate. >> > * targhooks.c (default_vector_alignment): New function. >> > * targhooks.h (default_vector_alignment): Add prototype. >> > * stor-layout.c (layout_type): Use targetm.vector_alignment. >> > * config/arm/arm.c (arm_vector_alignment): New function. >> > (TARGET_VECTOR_ALIGNMENT): Define. >> > >> > * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use >> > vector type alignment instead of size. >> > * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use >> > element type size directly instead of computing it from alignment. >> > Fix variable naming and comment. >> > >> > testsuite/ChangeLog: >> > >> > * lib/target-supports.exp >> > (check_effective_target_vect_natural_alignment): New function. >> > * gcc.dg/align-2.c: Only run on targets with natural alignment >> > of vector types. >> > * gcc.dg/vect/slp-25.c: Adjust tests for targets without natural >> > alignment of vector types. > > >> > OK for mainline? >> >> Ok. > > Would it be OK to backport this to 4.7 and possibly 4.6? > > This patch represents a change in the ABI on ARM (the alignment could > potentially affect struct member offsets, for example), which could > conceivably cause incompatibilities with code compiled with older > versions of GCC. We had originally decided we nevertheless want to > implement this change on ARM, because: > > - GCC is now in compliance with the platform ABI document > - the old code could actually be buggy since GCC *assumed* 16-byte > alignment that wasn't actually guaranteed > - code actually affected by this change ought to be rare (code using > NEON vector types is rare in the first place, code using *structure > members* of such types is even rarer, and code using such structures > in cross-module APIs seems to be extremely rare) > > Nevertheless, given we do want to make this change, it would be best > to roll it out as quickly as possible, to minimize the time period > where people might use old (not yet fixed) compilers to generate > non-ABI-compliant binaries. Thus, we think it would be good for > the change to be applied to all still open release branches as well. > > (Note that while the patch contains changes to common code, those > should be no-ops for all targets that do not implement the new hook.)
I'll defer the decision to the target maintainers. But please double-check for any changes in the vectorizer parts when backporting to 4.6. Thanks, Richard. > Bye, > Ulrich > > -- > Dr. Ulrich Weigand > GNU Toolchain for Linux on System z and Cell BE > ulrich.weig...@de.ibm.com >