On Jun 19, 2012, at 12:22 PM, Iain Sandoe <i...@codesourcery.com> wrote:
> On 19 Jun 2012, at 13:53, Dominique Dhumieres wrote:
> 
>> On Tue, 19 Jun 2012, Richard Guenther wrote:
>>> 
>>>> Richard Guenther <rguent...@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?

Hum, upper is easy...  I thought the issue was that extra alignment would kill 
it?  I know that extra alignment does kill some of the objc metadata.

Reply via email to