aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2006-03-03 01:07:54 +0100
committerZdenek Dvorak <rakdver@gcc.gnu.org>2006-03-03 00:07:54 +0000
commit701b8964b2b94331221474a6d44b0caf0d0eae6b (patch)
tree1b03931413452b5bfbb76fd6d8f880dc373d4c4d /gcc
parent599941607016f0574a55d77ba0cab0415fffdde6 (diff)
downloadgcc-701b8964b2b94331221474a6d44b0caf0d0eae6b.zip
gcc-701b8964b2b94331221474a6d44b0caf0d0eae6b.tar.gz
gcc-701b8964b2b94331221474a6d44b0caf0d0eae6b.tar.bz2
tree-vrp.c (remove_range_assertions): Do not update statements unnecessarily.
* tree-vrp.c (remove_range_assertions): Do not update statements unnecessarily. From-SVN: r111654
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/tree-vrp.c12
2 files changed, 9 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e9e8a1c..5c933ac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
+ * tree-vrp.c (remove_range_assertions): Do not update statements unnecessarily.
+
+2006-03-02 Zdenek Dvorak <dvorakz@suse.cz>
+
* cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
cleanup.
* gcse.c (rest_of_handle_gcse): Ditto.
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index d8ff9fd..f6d0a6d 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -3198,21 +3198,19 @@ remove_range_assertions (void)
if (TREE_CODE (stmt) == MODIFY_EXPR
&& TREE_CODE (TREE_OPERAND (stmt, 1)) == ASSERT_EXPR)
{
- tree rhs = TREE_OPERAND (stmt, 1);
+ tree rhs = TREE_OPERAND (stmt, 1), var;
tree cond = fold (ASSERT_EXPR_COND (rhs));
use_operand_p use_p;
imm_use_iterator iter;
gcc_assert (cond != boolean_false_node);
- TREE_OPERAND (stmt, 1) = ASSERT_EXPR_VAR (rhs);
- update_stmt (stmt);
- /* The statement is now a copy. Propagate the RHS into
- every use of the LHS. */
+ /* Propagate the RHS into every use of the LHS. */
+ var = ASSERT_EXPR_VAR (rhs);
FOR_EACH_IMM_USE_SAFE (use_p, iter, TREE_OPERAND (stmt, 0))
{
- SET_USE (use_p, ASSERT_EXPR_VAR (rhs));
- update_stmt (USE_STMT (use_p));
+ SET_USE (use_p, var);
+ gcc_assert (TREE_CODE (var) == SSA_NAME);
}
/* And finally, remove the copy, it is not needed. */