This is the mail archive of the
mailing list for the GCC project.
Re: Symtab cleanup 10/17 remove unnecesary DECL_ARGUMENTS and DECL_RESULT
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: Mike Stump <mikestump at comcast dot net>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 2 Sep 2013 13:48:26 +0200
- Subject: Re: Symtab cleanup 10/17 remove unnecesary DECL_ARGUMENTS and DECL_RESULT
- Authentication-results: sourceware.org; auth=none
- References: <20130801150906 dot GB2236 at kam dot mff dot cuni dot cz> <441E5C9A-174E-4810-9F9C-F264E56170DF at comcast dot net> <20130822064756 dot GE16124 at kam dot mff dot cuni dot cz> <075DA2A7-0BFC-4455-B2DB-A50414DD95BD at comcast dot net> <20130902105208 dot GB5201 at kam dot mff dot cuni dot cz> <CAFiYyc2o+jca4zhWY+kfRr2w9kuoh_9ZJ2Jh17xJwCMiGt14cA at mail dot gmail dot com> <20130902114301 dot GA21016 at kam dot mff dot cuni dot cz>
On Mon, Sep 2, 2013 at 1:43 PM, Jan Hubicka <email@example.com> 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)