On 29/09/2011, at 10:23 PM, Richard Guenther wrote: > On Thu, Sep 29, 2011 at 10:27 AM, Tom de Vries <tom_devr...@mentor.com> wrote:
> + && SSA_NAME_IS_DEFAULT_DEF (expr) > + && TREE_CODE (var) == PARM_DECL > + && POINTER_TYPE_P (TREE_TYPE (var)) > + && TYPE_USER_ALIGN (TREE_TYPE (TREE_TYPE (var)))) > + val = get_align_value (TYPE_ALIGN (TREE_TYPE (TREE_TYPE (var))), > + TREE_TYPE (var), 0); > > I realize that the scope where this applies is pretty narrow (and thus > bad fallout is quite unlikely). But I suppose we should document > somewhere that GCC treats alignment attributes on parameters > more strict than say, on assignments. Richard, the intention here is for a follow up patch to change "&& TYPE_USER_ALIGN" to "&& (TYPE_USER_ALIGN || flag_assume_aligned_parameters)". I understand that you will probably not like the idea of adding flag_assume_aligned_parameters, but it wouldn't make such an option any less valuable for experienced users of GCC. For some users this option will the additional piece of rope to hang themselves; for others it will produce good benefits of better performance. [Disclaimer: I've put significant amount of my time into investigation of this problem and hate to see it all go to waste :-).] Thank you, -- Maxim Kuvyrkov CodeSourcery / Mentor Graphics