[PATCH, PR43814] Assume function arguments of pointer type are aligned.
Maxim Kuvyrkov
maxim@codesourcery.com
Wed Oct 19 06:40:00 GMT 2011
On 29/09/2011, at 10:23 PM, Richard Guenther wrote:
> On Thu, Sep 29, 2011 at 10:27 AM, Tom de Vries <Tom_deVries@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
More information about the Gcc-patches
mailing list