diff options
Diffstat (limited to 'gcc/tree-outof-ssa.c')
| -rw-r--r-- | gcc/tree-outof-ssa.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c index e23f0a182b6..4d9986d1953 100644 --- a/gcc/tree-outof-ssa.c +++ b/gcc/tree-outof-ssa.c @@ -581,13 +581,14 @@ coalesce_abnormal_edges (var_map map, conflict_graph graph, root_var_p rv) edge e; tree phi, var, tmp; int x, y; + edge_iterator ei; /* Code cannot be inserted on abnormal edges. Look for all abnormal edges, and coalesce any PHI results with their arguments across that edge. */ FOR_EACH_BB (bb) - for (e = bb->succ; e; e = e->succ_next) + FOR_EACH_EDGE (e, ei, bb->succs) if (e->dest != EXIT_BLOCK_PTR && e->flags & EDGE_ABNORMAL) for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi)) { @@ -1930,7 +1931,8 @@ rewrite_trees (var_map map, tree *values) phi = phi_nodes (bb); if (phi) { - for (e = bb->pred; e; e = e->pred_next) + edge_iterator ei; + FOR_EACH_EDGE (e, ei, bb->preds) eliminate_phi (e, phi_arg_from_edge (phi, e), g); } } |

