aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2005-11-10 11:31:07 -0700
committerJeff Law <law@gcc.gnu.org>2005-11-10 11:31:07 -0700
commitae14e67b2f07321ced085681e771e246d9ab2341 (patch)
tree985d6ecda4b0e82d74fab2b97185ebb8799a4eb5
parentc900f6aa99082a0cc764ed8bef3d6e36680cdb4b (diff)
downloadgcc-ae14e67b2f07321ced085681e771e246d9ab2341.zip
gcc-ae14e67b2f07321ced085681e771e246d9ab2341.tar.gz
gcc-ae14e67b2f07321ced085681e771e246d9ab2341.tar.bz2
tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not perform reassociation if the parent statement will not die as a result...
* 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. From-SVN: r106744
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-ssa-dom.c1
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a0cbc6..66e0e1d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2005-11-04 Jeff Law <law@redhat.com>
+
+ PR middle-end/23181
+ * 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.
+
2005-11-10 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (compute_may_aliases): Remove call to
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index cb5eeb0..1e0ebbc 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));