From e8bf7c7b7508468ce3a097200b3a6322d1fb9a1c Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Fri, 12 May 2017 11:36:01 -0600 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-4.c | 8 ++------ gcc/tree-vrp.c | 2 ++ 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 + + * tree-vrp.c (vrp_dom_walker::before_dom_childern): Push unwinding + markers. + 2017-05-12 Peter Bergner 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 + + * g++.dg/tree-ssa/ssa-dom-thread-4.c: Update expected output. + 2017-05-12 Peter Bergner 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); -- 2.7.4