I didn't want to rebase my patchset yet again to fix this minor goof. I moved initialization of BB_VISITED into the range analyzer, but forgot to move setting it as we visit each block into the analyzer.
This fixes that oversight. Bootstrapped and regression tested on x86. OK for the trunk? Jeff
* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not set BB_VISITED here. * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Set BB_VISITED here instead. commit 0455c00f320dc1136ca742e46ca5a184e144b0e6 Author: Jeff Law <l...@torsion.usersys.redhat.com> Date: Fri Nov 17 15:15:36 2017 -0500 FIx bb_visited handling diff --git a/gcc/gimple-ssa-evrp-analyze.c b/gcc/gimple-ssa-evrp-analyze.c index 4f33c644a74..9e581834d08 100644 --- a/gcc/gimple-ssa-evrp-analyze.c +++ b/gcc/gimple-ssa-evrp-analyze.c @@ -61,6 +61,7 @@ evrp_range_analyzer::enter (basic_block bb) stack.safe_push (std::make_pair (NULL_TREE, (value_range *)NULL)); record_ranges_from_incoming_edge (bb); record_ranges_from_phis (bb); + bb->flags |= BB_VISITED; } /* Find new range for NAME such that (OP CODE LIMIT) is true. */ diff --git a/gcc/gimple-ssa-evrp.c b/gcc/gimple-ssa-evrp.c index 5fa9cfb3538..27a983dd9ae 100644 --- a/gcc/gimple-ssa-evrp.c +++ b/gcc/gimple-ssa-evrp.c @@ -228,8 +228,6 @@ evrp_dom_walker::before_dom_children (basic_block bb) } } - bb->flags |= BB_VISITED; - return taken_edge; }