[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