This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Put scope blocks on a diet
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Alexandre Oliva <aoliva at redhat dot com>
- Cc: Jan Hubicka <jh at suse dot cz>, gcc-patches at gcc dot gnu dot org
- Date: Wed, 10 Oct 2007 10:46:26 +0200
- Subject: Re: Put scope blocks on a diet
- References: <20070724180235.GM24519@kam.mff.cuni.cz> <orlkcucny9.fsf@oliva.athome.lsd.ic.unicamp.br> <ory7gtbkd9.fsf@oliva.athome.lsd.ic.unicamp.br> <20070806201102.GF4460@kam.mff.cuni.cz> <orprzw2kuk.fsf@free.oliva.athome.lsd.ic.unicamp.br> <orprznl6tl.fsf@free.oliva.athome.lsd.ic.unicamp.br>
>
> I did this, but then I wonder... How come the differences in decl
> uids arise from inlining of removed variables, if the patch was
> supposed to take effect only after inlining?
>
> As it turns out, looking at the code, I get the impression that
> cfun->after_inline determines whether the function was inlined into,
cfun->after_inline is set after fixup_cfg that removes extra edges from
cfg otherwise needed by inliner, so we really ought not to inline that
function after that point.
On mainline fixup_cfg is executed after apply_inline, so it should be
safe.
Honza
> rather than whether it has already been inlined into every point it
> would be throughout the current compilation. Is this not so?
>
> If it is, then the test is meaningless. The problem arises when we
> change the declarations in a function's logical blocks and then inline
> into others.
>
> What am I missing?
>
> --
> Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
> FSF Latin America Board Member http://www.fsfla.org/
> Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
> Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}