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:38:20 +0100
- Subject: Re: [tree-ssa] Critical edge splitting (was: New regressions as of 2003-11-04)
- References: <Pine.LNX.4.44.0311051040340.21773-100000@nondot.org>
Hello,
> > Please be aware, that if you guys want, I can also temporarily fix the
> > regression at the cost of possibly redoing dominators + dominance
> > frontiers for every lexical expression we PRE (This is absolute worst
> > case, where every expression has a different set of critical edges we
> > might need to insert on. I don't know how often this happens in
> > practice).
>
> If critical edge splitting is the whole problem here, why don't you just
> enhance your critical edge splitter to _update_ the relevant information?
> Critical edges only locally change dominance properties, so this is very
> easy.
>
> 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.
Zdenek