This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Critical edge splitting (was: New regressions as of 2003-11-04)
- From: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- To: Chris Lattner <sabre at nondot dot org>
- Cc: Daniel Berlin <dberlin at dberlin dot org>,Diego Novillo <dnovillo at redhat dot com>, Jeff Law <law at redhat dot com>,gcc mailing list <gcc at gcc dot gnu dot org>,Andrew Macleod <amacleod at redhat dot com>, Jan Hubicka <jh at suse dot cz>
- Date: Wed, 5 Nov 2003 17:48:19 +0100
- Subject: Re: [tree-ssa] Critical edge splitting (was: New regressions as of 2003-11-04)
- References: <20031105163820.GA17630@atrey.karlin.mff.cuni.cz> <Pine.LNX.4.44.0311051101290.21773-100000@nondot.org>
Hello,
> > > If you're interested, the LLVM critical edge splitter updates dominator
> > > sets, immediate dominators, dominator trees, and dominance frontiers (in
> > > significantly less than 150 LOC). The code is here:
> > >
> > > http://llvm.cs.uiuc.edu/doxygen/BreakCriticalEdges_8cpp-source.html
> > >
> > > I'm not sure that I understand what the problem is with presplitting all
> > > edges, but at least this will give you a nice simple incremental way to do
> > > it without recalculating the world. :)
> >
> > the real problem for me is that things like splitting the edges should
> > just work. Yes, recalculating the dominance information is feasible,
> > but unnecessary, in this particular case.
>
> Why doesn't edge splitting work? What's the sticky part about it? It's a
> trivially simple operation... the link above contains the code to insert
> blocks and update PHI nodes as appropriate as well. What am I missing
> here?
that we managed to make such an ugly intermediate representation that
this triviality became 500 lines of code; fortunately we are slowly
getting it saner (and are introducing stupid bugs like this one in the
progress).
Zdenek