http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56564

Sandra Loosemore <sandra at codesourcery dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sandra at codesourcery dot com

--- Comment #11 from Sandra Loosemore <sandra at codesourcery dot com> ---
This affects at least PowerPC, too, which implements DATA_ALIGNMENT to add
additional alignment beyond that specified by the ABI.

Isn't TYPE_ALIGN already supposed to return the ABI-mandated alignment for
objects of a given type?  The documentation for DATA_ALIGNMENT already suggests
that its purpose is to add additional alignment for optimization purposes and I
suspect other targets may be using it that way, too.  Perhaps what's needed
here is more careful monitoring of the places where DATA_ALIGNMENT is being
used, rather than splitting it into two macros or adding an argument to control
the two uses.  Or at least, we'd have to clarify how the requirements for the
ABI-conforming use of DATA_ALIGNMENT differ from what TYPE_ALIGN is supposed to
do.

It seems to me that DATA_ALIGNMENT's original purpose was to add additional
alignment on variable definitions, and IIUC the problem now is either that it
is being used in other contexts or that its intended use is not taking into
account common, weak, and/or comdat definitions where the linker may substitute
a less-aligned definition from another compilation unit.  

Also, somebody should check whether vect_can_force_dr_alignment_p in
tree-vect-data-refs.c is catching all the cases it needs to for ABI
conformance.

Reply via email to