diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2004-11-24 13:33:26 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2004-11-24 13:33:26 +0000 |
commit | 9323afaec859608f99a56c9882f175245889b012 (patch) | |
tree | 0aa6e78f1b6abdfa4e31d3f0174f4cdef20aa44e /gcc | |
parent | 58e594dca99624eb8d3f97b30e0b1027f58bac96 (diff) | |
download | gcc-9323afaec859608f99a56c9882f175245889b012.zip gcc-9323afaec859608f99a56c9882f175245889b012.tar.gz gcc-9323afaec859608f99a56c9882f175245889b012.tar.bz2 |
tree-ssa-pre.c (phi_translate): Use find_edge to find the index of a PHI argument.
* tree-ssa-pre.c (phi_translate): Use find_edge to find the
index of a PHI argument.
From-SVN: r91154
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-pre.c | 19 |
2 files changed, 14 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fb41935..9dd15b2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-11-24 Kazu Hirata <kazu@cs.umass.edu> + + * tree-ssa-pre.c (phi_translate): Use find_edge to find the + index of a PHI argument. + 2004-11-24 Steven Bosscher <stevenb@suse.de> * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 38d5d2b..5bb552f 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -922,22 +922,21 @@ phi_translate (tree expr, value_set_t set, basic_block pred, case tcc_exceptional: { tree phi = NULL; - int i; + edge e; gcc_assert (TREE_CODE (expr) == SSA_NAME); if (TREE_CODE (SSA_NAME_DEF_STMT (expr)) == PHI_NODE) phi = SSA_NAME_DEF_STMT (expr); else return expr; - for (i = 0; i < PHI_NUM_ARGS (phi); i++) - if (PHI_ARG_EDGE (phi, i)->src == pred) - { - tree val; - if (is_undefined_value (PHI_ARG_DEF (phi, i))) - return NULL; - val = vn_lookup_or_add (PHI_ARG_DEF (phi, i), NULL); - return PHI_ARG_DEF (phi, i); - } + e = find_edge (pred, bb_for_stmt (phi)); + if (e) + { + if (is_undefined_value (PHI_ARG_DEF (phi, e->dest_idx))) + return NULL; + vn_lookup_or_add (PHI_ARG_DEF (phi, e->dest_idx), NULL); + return PHI_ARG_DEF (phi, e->dest_idx); + } } return expr; |