[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