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? Iain