This is the mail archive of the gcc-patches@gcc.gnu.org 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: 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


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