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] Insert on edge comment


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


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