On Sat, Jun 19, 2021 at 9:48 PM apinski--- via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > From: Andrew Pinski <apin...@marvell.com> > > I had missed this when wrote the patch which allowed the > gimple to be moved from inside the conditional as it. It > was also missed in the review. Anyways the range information > needs to be reset for the moved gimple as it was under a > conditional and the flow has changed to be unconditional. > I have not seen any testcase in the wild that produces wrong code > yet which is why there is no testcase but this is similar to what > the other code in phiopt does so after moving those to match, there > might be some. > > OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.
OK. Richard. > gcc/ChangeLog: > > * tree-ssa-phiopt.c (match_simplify_replacement): Reset > flow senatitive info on the moved ssa set. > --- > gcc/tree-ssa-phiopt.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c > index 02e26f974a5..24cbce9955a 100644 > --- a/gcc/tree-ssa-phiopt.c > +++ b/gcc/tree-ssa-phiopt.c > @@ -836,7 +836,7 @@ match_simplify_replacement (basic_block cond_bb, > basic_block middle_bb, > if (!is_gimple_assign (stmt_to_move)) > return false; > > - tree lhs = gimple_assign_lhs (stmt_to_move); > + tree lhs = gimple_assign_lhs (stmt_to_move); > gimple *use_stmt; > use_operand_p use_p; > > @@ -892,6 +892,7 @@ match_simplify_replacement (basic_block cond_bb, > basic_block middle_bb, > } > gimple_stmt_iterator gsi1 = gsi_for_stmt (stmt_to_move); > gsi_move_before (&gsi1, &gsi); > + reset_flow_sensitive_info (gimple_assign_lhs (stmt_to_move)); > } > if (seq) > gsi_insert_seq_before (&gsi, seq, GSI_SAME_STMT); > -- > 2.27.0 >