[tree-ssa]: out-of-ssa breaks if something adds a pred

Andrew MacLeod amacleod@redhat.com
Fri Jun 6 20:43:00 GMT 2003


On Fri, 2003-06-06 at 16:26, Diego Novillo wrote:
> On Fri, 2003-06-06 at 15:52, Daniel Berlin wrote:
> > When something ends up adding a predecessor block to a block with phi's 
> > in it, out-of-ssa breaks.
> > This is because it expects all the phi's to have the same number of 
> > args/edges as preds, but phi's created *before* the pred was added have 
> > one less argument/edge.
> > 
> Then whoever created the new edge should have added a
> > 

> 	B3
> 
> The PHI nodes at B13 should just be rewritten to change all the
> arguments that were coming from B1, to come from B15.  I think this is
> something the edge insertion commit routine can do automatically. 
> Andrew?

See the last note I just sent. Easy to do, just havent done it because I
didint need it at the time :-).

Its pretty trivial, but I am about to go camping until sunday night
(with no electricity) , in, oh, about 10 minutes. So I can't fix it
until sunday night/monday morning.

If its critical and someone else wants to:

bsi_commit_first_edge_insert() calls split_edge(), which I beleive calls
back to tree_split_edge in tree_cfg.c... Thats the place to do it.


Oh, and for the record, :-),  I didn't write that routine, so I guess
its Diego's fault :-) haha.

Andrew



More information about the Gcc mailing list