On Mon, Oct 05, 2015 at 04:26:49PM +0200, Richard Biener wrote: > > > Otherwise other setters of SSA_NAME_RANGE_INFO would need to make > > > sure SSA_NAME_ANTI_RANGE_P is cleared as well. > > > > They mostly do, if I'm looking right, e.g. > > tree-ssa-phiopt.c:1016 > > tree-ssa-loop-im.c:1224 > > tree-ssa-loop-im.c:1294 > > and I've also seen > > <https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00127.html>. > > Those would be redundant then.
I can give this a whirl (as a follow-up)... 2015-10-05 Marek Polacek <pola...@redhat.com> * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom_children): Don't set SSA_NAME_ANTI_RANGE_P. * tree-ssa-phiopt.c (value_replacement): Likewise. diff --git gcc/tree-ssa-loop-im.c gcc/tree-ssa-loop-im.c index f3389a0..9b2436f 100644 --- gcc/tree-ssa-loop-im.c +++ gcc/tree-ssa-loop-im.c @@ -1222,7 +1222,6 @@ move_computations_dom_walker::before_dom_children (basic_block bb) { tree lhs = gimple_assign_lhs (new_stmt); SSA_NAME_RANGE_INFO (lhs) = NULL; - SSA_NAME_ANTI_RANGE_P (lhs) = 0; } gsi_insert_on_edge (loop_preheader_edge (level), new_stmt); remove_phi_node (&bsi, false); @@ -1292,7 +1291,6 @@ move_computations_dom_walker::before_dom_children (basic_block bb) { tree lhs = gimple_get_lhs (stmt); SSA_NAME_RANGE_INFO (lhs) = NULL; - SSA_NAME_ANTI_RANGE_P (lhs) = 0; } /* In case this is a stmt that is not unconditionally executed when the target loop header is executed and the stmt may diff --git gcc/tree-ssa-phiopt.c gcc/tree-ssa-phiopt.c index 697836a..f33ca5c 100644 --- gcc/tree-ssa-phiopt.c +++ gcc/tree-ssa-phiopt.c @@ -1014,7 +1014,6 @@ value_replacement (basic_block cond_bb, basic_block middle_bb, <bb 4>: # u_3 = PHI <u_6(3), 4294967295(2)> */ SSA_NAME_RANGE_INFO (lhs) = NULL; - SSA_NAME_ANTI_RANGE_P (lhs) = 0; /* If available, we can use VR of phi result at least. */ tree phires = gimple_phi_result (phi); struct range_info_def *phires_range_info Marek