This is the mail archive of the gcc@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: [tree-ssa] Critical edge splitting (was: New regressions as of2003-11-04)


Dan Berlin wrote:

> 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.  :)

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/


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