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 of 2003-11-04)


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


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