diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2006-03-03 01:07:54 +0100 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2006-03-03 00:07:54 +0000 |
commit | 701b8964b2b94331221474a6d44b0caf0d0eae6b (patch) | |
tree | 1b03931413452b5bfbb76fd6d8f880dc373d4c4d /gcc | |
parent | 599941607016f0574a55d77ba0cab0415fffdde6 (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/tree-vrp.c | 12 |
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. */ |