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.