aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2017-05-12 11:36:01 -0600
committerJeff Law <law@gcc.gnu.org>2017-05-12 11:36:01 -0600
commite8bf7c7b7508468ce3a097200b3a6322d1fb9a1c (patch)
tree66386a3752704190937fe2372d0fef9acb314ec2 /gcc
parent284d1f76e9b9411a30c43d3d366855debdb31f6a (diff)
downloadgcc-e8bf7c7b7508468ce3a097200b3a6322d1fb9a1c.zip
gcc-e8bf7c7b7508468ce3a097200b3a6322d1fb9a1c.tar.gz
gcc-e8bf7c7b7508468ce3a097200b3a6322d1fb9a1c.tar.bz2
tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding markers.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c8
-rw-r--r--gcc/tree-vrp.c2
4 files changed, 13 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 197c75b..6cd0666 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 28664c7..d3797eb 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
index ed76e81..e13eb86 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c
@@ -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,
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 0db8a3c..b8cb887 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -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);