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 17:06:42 -0400
- Subject: Re: [tree-ssa] Insert on edge comment
- References: <Pine.LNX.4.44.0305311545030.24573-100000@nondot.org>
On Sat, 2003-05-31 at 16:49, Chris Lattner wrote:
> > > 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.
>
> > Actually, it just occurred to me.... thats all i have ever been talking
> > about actually.. is inserting on a critical edge... I guess I never
> > explicitly said that did I? :-)
>
> I actually did understand that. :) I was trying to address several
> points in the thread:
Ah good :-)
>
> 1. Make sure people knew that only critical edges were the important ones
> 2. Point out that it's really trivial to update auxillary data structures
> (including SSA, if you consider it auxilliary) on the fly, using only
> local information.
> 3. Point out that things like "switch" statements and "infinite loop"
> statements make things much harder. For example, in the case of the
> switch statement, the edge breaker needs to know how to handle fall
> through cases, and other stuff. This is the reason why a
> multi-way-branch makes a bit more sense than a "source-level" switch
> statement.
Yes, thats pretty much the relevant parts. Much more succinctly put than
I did :-)
In fact, a lot of the complexity I've had to deal with (which is now
hidden by the insert routines), is actually determining where a new
instruction gets linked into the tree structure. The insert routines
have a pretty good handle on it now I think. And the critical edge code
is just beginning to get seriously exercised.
Andrew