tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding markers.
authorJeff Law <law@redhat.com>
Fri, 12 May 2017 17:36:01 +0000 (11:36 -0600)
committerJeff Law <law@gcc.gnu.org>
Fri, 12 May 2017 17:36:01 +0000 (11:36 -0600)
* tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding
markers.

* g++.dg/tree-ssa/ssa-dom-thread-4.c: Update expected output.

From-SVN: r247985

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
gcc/tree-vrp.c

index 197c75b1ace4ed22ec16439854a79e6e8f5dabdb..6cd066691b379e033d6ce6cd9fdb81c90006c3d8 100644 (file)
@@ -1,3 +1,8 @@
+2017-05-12  Jeff Law  <law@redhat.com>
+
+       * tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding
+       markers.
+
 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
 
        PR middle-end/80707
index 28664c78cdb17799f20d4f0a86141d68c1f9f967..d3797eb21b431a9885c2581a4c75ab6615423062 100644 (file)
@@ -1,3 +1,7 @@
+2017-05-12  Jeff Law  <law@redhat.com>
+
+       * g++.dg/tree-ssa/ssa-dom-thread-4.c: Update expected output.
+
 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
 
        PR middle-end/80707
index ed76e8119adc3d3cc1ea28e0dfed3ab9536618e7..e13eb8673dd7d0db339e4e58291f4ec68bea404a 100644 (file)
@@ -57,12 +57,8 @@ bitmap_ior_and_compl (bitmap dst, const_bitmap a, const_bitmap b,
    we should thread all three, but due to a bug in the threading
    code we missed the edge when the first conditional is false
    (b_elt is zero, which means the second conditional is always
-   zero.  
-
-   The first two are caught by VRP1, the last is caught by DOM
-   along with another jump thread.  */
-/* { dg-final { scan-tree-dump-times "Threaded" 2 "vrp1" { target { ! logical_op_short_circuit } } } } */
-/* { dg-final { scan-tree-dump-times "Threaded" 2 "dom2" { target { ! logical_op_short_circuit } } } } */
+   zero.  VRP1 catches all three.  */
+/* { dg-final { scan-tree-dump-times "Threaded" 3 "vrp1" { target { ! logical_op_short_circuit } } } } */
 
 /* On targets that define LOGICAL_OP_NON_SHORT_CIRCUIT to 0, we split both
    "a_elt || b_elt" and "b_elt && kill_elt" into two conditions each,
index 0db8a3c39697f5088d0277e778c532d8cd85e9f4..b8cb887cb39f75ecb4a7beb8d10b6742e38b6a39 100644 (file)
@@ -10540,6 +10540,8 @@ vrp_dom_walker::before_dom_children (basic_block bb)
 {
   gimple_stmt_iterator gsi;
 
+  m_avail_exprs_stack->push_marker ();
+  m_const_and_copies->push_marker ();
   for (gsi = gsi_start_nondebug_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
     {
       gimple *stmt = gsi_stmt (gsi);