diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9dd15b29cbe1..9afd037a3f93 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -3,6 +3,9 @@ * tree-ssa-pre.c (phi_translate): Use find_edge to find the index of a PHI argument. + * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use + find_edge to find the index of a PHI argument. + 2004-11-24 Steven Bosscher * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c index 43499560e549..3a8784985f7c 100644 --- a/gcc/tree-ssa-loop-manip.c +++ b/gcc/tree-ssa-loop-manip.c @@ -667,14 +667,12 @@ lv_adjust_loop_header_phi (basic_block first, basic_block second, phi2 && phi1; phi2 = PHI_CHAIN (phi2), phi1 = PHI_CHAIN (phi1)) { - int i; - for (i = 0; i < PHI_NUM_ARGS (phi2); i++) + edge e2 = find_edge (new_head, second); + + if (e2) { - if (PHI_ARG_EDGE (phi2, i)->src == new_head) - { - tree def = PHI_ARG_DEF (phi2, i); - add_phi_arg (&phi1, def, e); - } + tree def = PHI_ARG_DEF (phi2, e2->dest_idx); + add_phi_arg (&phi1, def, e); } } }