diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2005-04-07 16:31:07 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2005-04-07 16:31:07 +0000 |
commit | ab7983139ddfcac4ef3ae8d63efddbbd3bcd4310 (patch) | |
tree | 7f14b7ad7a73fa4e594bbd96a9a021e5eab1e780 /gcc | |
parent | 53b42091b991f1aafcb90fc6ac76763a7e6de560 (diff) | |
download | gcc-ab7983139ddfcac4ef3ae8d63efddbbd3bcd4310.zip gcc-ab7983139ddfcac4ef3ae8d63efddbbd3bcd4310.tar.gz gcc-ab7983139ddfcac4ef3ae8d63efddbbd3bcd4310.tar.bz2 |
tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider all immediate uses in PHI nodes.
* tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
all immediate uses in PHI nodes.
From-SVN: r97788
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-sink.c | 16 |
2 files changed, 12 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f259167..82368e1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-04-07 Kazu Hirata <kazu@cs.umass.edu> + + * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider + all immediate uses in PHI nodes. + 2005-04-07 Richard Earnshaw <richard.earnshaw@arm.com> * arm.c (arm_const_double_inline_cost): Handle any constant by diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c index cecbae7..54f9fb9 100644 --- a/gcc/tree-ssa-sink.c +++ b/gcc/tree-ssa-sink.c @@ -241,17 +241,15 @@ nearest_common_dominator_of_uses (tree stmt) if (TREE_CODE (usestmt) == PHI_NODE) { int idx = PHI_ARG_INDEX_FROM_USE (use_p); - if (PHI_ARG_DEF (usestmt, idx) == var) + + useblock = PHI_ARG_EDGE (usestmt, idx)->src; + /* Short circuit. Nothing dominates the entry block. */ + if (useblock == ENTRY_BLOCK_PTR) { - useblock = PHI_ARG_EDGE (usestmt, idx)->src; - /* Short circuit. Nothing dominates the entry block. */ - if (useblock == ENTRY_BLOCK_PTR) - { - BITMAP_FREE (blocks); - return NULL; - } - bitmap_set_bit (blocks, useblock->index); + BITMAP_FREE (blocks); + return NULL; } + bitmap_set_bit (blocks, useblock->index); } else { |