This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Insert on edge comment
- From: Andrew MacLeod <amacleod at redhat dot com>
- To: Chris Lattner <sabre at nondot dot org>
- Cc: Jeff Law <law at redhat dot com>, vmakarov at redhat dot com, matz at suse dot de,gcc mailing list <gcc at gcc dot gnu dot org>
- Date: 31 May 2003 16:06:24 -0400
- Subject: Re: [tree-ssa] Insert on edge comment
- References: <Pine.LNX.4.44.0305311132300.22731-100000@nondot.org>
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