This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PR middle-end/30509
> On 2/25/07, Jan Hubicka <jh@suse.cz> wrote:
> >Hi,
> >this patch fixes pretty ugly ICE in computing dominance info after
> >function clonning for inlining. The problem is that IPA passes marks
> >some functions as non-trapping and the clone function CFG has fewer
> >edges in CFG than the original function rendering some blocks
> >unreachable. THis makes dominance compulation to ICE, however we can't
> >simply delete the blocks as we would get the cgraph of the clones out of
> >sync, so instead I just propagate the EH info into the clones and
> >deferring the removal of unnecesary edges to fixup_cfg where it is
> >normally done without inlining.
> >
> >Bootstrapped/regtested i686-linux, OK?
>
> It looks reasonable, of course it would be nice to get rid of the
> unreachable blocks for speed and memory reasons...
It is eating just little extra memory (we don't produce clones too
often). In longer run I still plan to make inlining work in a way so
all the bodies are inlined at once. The memory implications are not that
bad anymore at least with the reoptimization. I am not 100% sure if it
is 4.3 matherial (ie at very least we need aliasing before inlining
first) but I am planning to give it a try shortly after Diego figures
out what is needed for the aliasing. All code for that is written and
was used on IPA branch for a while.
So this all is just temporary. Once we do inlining first, we can update
all the passes that do changes function bodies at IPA level to do the
corresponding updates.
>
> So, ok if nobody comes up with a better idea before the window that
> get's vangelis happy again tonight.
>
> Btw - did you check if this fixes PR30866 and PR30768?
Yes, it does.
Honza