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 of2003-11-04)
- From: Chris Lattner <sabre at nondot dot org>
- To: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- 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 11:02:42 -0600 (CST)
- Subject: Re: [tree-ssa] Critical edge splitting (was: New regressions as of2003-11-04)
On Wed, 5 Nov 2003, Zdenek Dvorak wrote:
> 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?
-Chris
--
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/