[PATCH] Fix PR53708

Iain Sandoe iain@codesourcery.com
Tue Jun 19 20:33:00 GMT 2012


On 19 Jun 2012, at 13:53, Dominique Dhumieres wrote:

> On Tue, 19 Jun 2012, Richard Guenther wrote:
>> 
>>> Richard Guenther <rguenther@suse.de> writes:
>>>> We are too eager to bump alignment of some decls when vectorizing.
>>>> The fix is to not bump alignment of decls the user explicitely
>>>> aligned or that are used in an unknown way.
>>> 
>>> I thought attribute((__aligned__)) only set a minimum alignment for
>>> variables?  Most usees I've seen have been trying to get better
>>> performance from higher alignment, so it might not go down well if the
>>> attribute stopped the vectoriser from increasing the alignment still
>>> further.
>> 
>> That's what the documentation says indeed.  I'm not sure which part of
>> the patch fixes the ObjC failures where the alignment is part of the ABI
>> (and I suppose ObjC then mis-uses the aligned attribute?).
> 
> A quick test shows that 
> 
> if (DECL_PRESERVE_P (decl))
> 
> alone is enough to fix the objc failures, while they are still there if 
> one uses only
> 
> if (DECL_USER_ALIGN (decl))

That makes sense, I had a quick look at the ObjC code, and it appears that the explicit ALIGNs were never committed to trunk.

Thus, the question becomes; what should ObjC (or any other) FE do to ensure that specific ABI (upper) alignment constraints are met?

Iain



More information about the Gcc-patches mailing list