This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Symtab cleanup 10/17 remove unnecesary DECL_ARGUMENTS and DECL_RESULT

On Mon, Sep 2, 2013 at 1:43 PM, Jan Hubicka <> wrote:
>> > +  tree a;
>> > +
>> > +  if (in_lto_p)
>> > +    cgraph_get_body (node);
>> That looks gross.  It cannot possibly be the correct fix for this.
> DECL_ARGUMENTS/DECL_RESULT are now part of function body.

Well, there is still fallout from this change so I'm not convinced
this will stay
this way.  Also we stream the function-decl that refers to these fields in
the global section which means we have a layering violation.  Which means
DECL_ARGUMENTS and DECL_RESULT should be moved to struct function?
Of course frontends may not be happy with that (given DECL_ARGUMENTS
is also used in function declarations)

Please consider reverting these changes (at least the DECL_ARGUMENTS one).

>  cgraph_get_body is
> there to load it for you when you need it. We are going to expand the function
> so it makes sense to get it.

Then all DECL_ARGUMENTS/DECL_RESULT users need to be audited, no?


> The same is done by the passmanager when function is going to be expanded. Only
> difference here is that thunks do not go through the passmanager.
> I can drop in_lto_p (the function does nothing when body is already there)
> Honza

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]