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,

> > > 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


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