Right now phiopt has the same code as mark_lhs_in_seq_for_dce inlined into match_simplify_replacement. Instead let's use the function in gimple-fold that does the same thing.
Bootstrapped and tested on x86_64-linux-gnu. gcc/ChangeLog: * gimple-fold.cc (mark_lhs_in_seq_for_dce): Make non-static. * gimple-fold.h (mark_lhs_in_seq_for_dce): Declare. * tree-ssa-phiopt.cc (match_simplify_replacement): Use mark_lhs_in_seq_for_dce instead of manually looping. Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> --- gcc/gimple-fold.cc | 2 +- gcc/gimple-fold.h | 1 + gcc/tree-ssa-phiopt.cc | 13 +++---------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc index b74fb8bb50c..0f437616d77 100644 --- a/gcc/gimple-fold.cc +++ b/gcc/gimple-fold.cc @@ -6020,7 +6020,7 @@ has_use_on_stmt (tree name, gimple *stmt) /* Add the lhs of each statement of SEQ to DCE_WORKLIST. */ -static void +void mark_lhs_in_seq_for_dce (bitmap dce_worklist, gimple_seq seq) { if (!dce_worklist) diff --git a/gcc/gimple-fold.h b/gcc/gimple-fold.h index afecbb8ceef..8b1e246b0c0 100644 --- a/gcc/gimple-fold.h +++ b/gcc/gimple-fold.h @@ -264,6 +264,7 @@ gimple_build_round_up (gimple_seq *seq, tree type, tree old_size, extern bool gimple_stmt_nonnegative_warnv_p (gimple *, bool *, int = 0); extern bool gimple_stmt_integer_valued_real_p (gimple *, int = 0); +extern void mark_lhs_in_seq_for_dce (bitmap, gimple_seq); /* In gimple-match.cc. */ extern tree gimple_simplify (enum tree_code, tree, tree, diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc index 9724040fc3d..8c5908e5bff 100644 --- a/gcc/tree-ssa-phiopt.cc +++ b/gcc/tree-ssa-phiopt.cc @@ -1001,16 +1001,9 @@ match_simplify_replacement (basic_block cond_bb, basic_block middle_bb, if (seq) { // Mark the lhs of the new statements maybe for dce - gimple_stmt_iterator gsi1 = gsi_start (seq); - for (; !gsi_end_p (gsi1); gsi_next (&gsi1)) - { - gimple *stmt = gsi_stmt (gsi1); - tree name = gimple_get_lhs (stmt); - if (name && TREE_CODE (name) == SSA_NAME) - bitmap_set_bit (exprs_maybe_dce, SSA_NAME_VERSION (name)); - } - gsi_insert_seq_before (&gsi, seq, GSI_CONTINUE_LINKING); - } + mark_lhs_in_seq_for_dce (exprs_maybe_dce, seq); + gsi_insert_seq_before (&gsi, seq, GSI_CONTINUE_LINKING); + } /* If there was a statement to move, move it to right before the original conditional. */ -- 2.43.0