aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-phiopt.c
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2021-06-18 17:55:51 -0700
committerAndrew Pinski <apinski@marvell.com>2021-06-25 18:47:42 -0700
commitfbad6c62529fd2e5dcf9f7db884cee01e9dcc4bd (patch)
treea5630c578a4010307307a8f58ecba075654ad999 /gcc/tree-ssa-phiopt.c
parent86fc076dc289f1861adebee02e6afcbaa1a2cdb6 (diff)
downloadgcc-fbad6c62529fd2e5dcf9f7db884cee01e9dcc4bd.zip
gcc-fbad6c62529fd2e5dcf9f7db884cee01e9dcc4bd.tar.gz
gcc-fbad6c62529fd2e5dcf9f7db884cee01e9dcc4bd.tar.bz2
Reset the range info on the moved instruction in PHIOPT
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. gcc/ChangeLog: * tree-ssa-phiopt.c (match_simplify_replacement): Reset flow senatitive info on the moved ssa set.
Diffstat (limited to 'gcc/tree-ssa-phiopt.c')
-rw-r--r--gcc/tree-ssa-phiopt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index ce5f0d5..1777bff 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);