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)



On Nov 5, 2003, at 11:48 AM, 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?

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


Basically, yes. We need containers rather than COMPOUND_EXPRS. :P


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