From: kazu Date: Thu, 7 Apr 2005 16:31:07 +0000 (+0000) Subject: * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c48d3403e29d1867251679626537464f4ebf882c;p=thirdparty%2Fgcc.git * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider all immediate uses in PHI nodes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97788 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f2591678a320..82368e1d9a3b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-04-07 Kazu Hirata + + * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider + all immediate uses in PHI nodes. + 2005-04-07 Richard Earnshaw * 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 cecbae7a74f2..54f9fb961dd1 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 {