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


> > 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:

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.

-Chris

>
> I have a tendancy to only talk about the interesting parts, bypassing
> the trivial bits since they seem obvious... Splitting critical edges is
> the only interesting part of inserting on an edge.. the others are
> turning into an insert_before (first_in_dest) or insert_after
> (last_in_src) if the edge isn't critical.
>
> That might solve some of the confusion about the "complexity" of our
> insert on edge :-)
>
> Andrew
>

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/


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