* tree-vrp.c (maybe_add_assert_expr): Don't assert
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 17 Apr 2005 17:57:10 +0000 (17:57 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 17 Apr 2005 17:57:10 +0000 (17:57 +0000)
ASSERT_EXPRs for single-use variable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98278 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-vrp.c

index 8cf5ee3..ed75fa9 100644 (file)
@@ -3,6 +3,9 @@
        * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
        both pointers or both integers.
 
+       * tree-vrp.c (maybe_add_assert_expr): Don't assert
+       ASSERT_EXPRs for single-use variable.
+
 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
 
        * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
index 3bb4a6b..bb68df6 100644 (file)
@@ -1446,6 +1446,14 @@ maybe_add_assert_expr (basic_block bb)
        {
          tree cond;
 
+         /* If OP is used only once, namely in this STMT, don't
+            bother inserting an ASSERT_EXPR for it.  Such an
+            ASSERT_EXPR would do nothing but increase compile time.
+            Experiments show that with this simple check, we can save
+            more than 20% of ASSERT_EXPRs.  */
+         if (has_single_use (op))
+           continue;
+
          SET_BIT (found, SSA_NAME_VERSION (op));
 
          cond = infer_value_range (stmt, op);