[tree-ssa] Insert on edge comment

Andrew MacLeod amacleod@redhat.com
Sat May 31 21:22:00 GMT 2003


On Sat, 2003-05-31 at 12:41, Chris Lattner wrote:
> 
> > That's certainly true as well.  If you look at how we do this at the
> > RTL level, you'll find that we don't split edges while in SSA form.
> > Instead we queue things (such as edge insertions) and split the edge
> > after we no longer need dominance info and PHI nodes.
> 
> Inserting on edges really isn't that hard if you realize that you only
> need to change the CFG for insertion on _critical_ edges.  At critical
> edges, the dominance properties are much simpler, and allow updating a lot
> of data structures incrementally with only local knowledge (including PHI
> nodes).  If you're interested in how we do it in LLVM, here is the source:
> 

Its only critical edges that we've been talking about, I just never
explicitly said that. The commit routines simply insert at the beginning
or end of the appropriate block if the edge isn't critical.

> 
> IMO, the real problem in tree-ssa is that it uses a nested control flow
> structure instead of a linearized one...
> 

So far, that hasnt really causes us much of a problem. The biggest issue
I had initially was finding the right spot to link a stmt into the tree,
but thats all hidden under the insert routines. 

Whether thats a problem later, I dont know yet.

Andrew



More information about the Gcc mailing list