summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-dom.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-10 18:31:07 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-10 18:31:07 +0000
commitf7449ceb0875fd2f633356e0060ae12cf83bc6b6 (patch)
tree985d6ecda4b0e82d74fab2b97185ebb8799a4eb5 /gcc/tree-ssa-dom.c
parentf7741cb166d978ce30a573a0905f7aad4eac9ccd (diff)
downloadgcc-f7449ceb0875fd2f633356e0060ae12cf83bc6b6.tar.gz
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
perform reassociation if the parent statement will not die as a result of the optimization. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106744 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-dom.c')
-rw-r--r--gcc/tree-ssa-dom.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index cb5eeb03a2f..1e0ebbce9a5 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -1794,6 +1794,7 @@ simplify_rhs_and_lookup_avail_expr (tree stmt, int insert)
assignment. Add minus to this, as we handle it specially below. */
if ((associative_tree_code (rhs_code) || rhs_code == MINUS_EXPR)
&& TREE_CODE (TREE_OPERAND (rhs, 0)) == SSA_NAME
+ && num_imm_uses (TREE_OPERAND (rhs, 0)) == 1
&& is_gimple_min_invariant (TREE_OPERAND (rhs, 1)))
{
tree rhs_def_stmt = SSA_NAME_DEF_STMT (TREE_OPERAND (rhs, 0));