This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR53708
On 19 Jun 2012, at 22:41, Mike Stump wrote:
> On Jun 19, 2012, at 12:22 PM, Iain Sandoe <iain@codesourcery.com> wrote:
>> 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?
>
> 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.
clearly, ambiguous phrasing on my part.
I mean when we want to say "no more than this much".