On Mon, Sep 2, 2013 at 1:43 PM, Jan Hubicka <hubi...@ucw.cz> 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?

Richard.

> 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

Reply via email to