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
>

Reply via email to