aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2022-08-31 17:28:09 -0400
committerAndrew MacLeod <amacleod@redhat.com>2022-09-22 14:14:34 -0400
commit3cba5cd6e019182dbff756f621af048d55cdda98 (patch)
tree3a1520acf6a57b062344f6f8a472c1020491e994
parent12b537b9b7fd50f4b2fbfcb7ccf45f8d66085577 (diff)
downloadgcc-3cba5cd6e019182dbff756f621af048d55cdda98.zip
gcc-3cba5cd6e019182dbff756f621af048d55cdda98.tar.gz
gcc-3cba5cd6e019182dbff756f621af048d55cdda98.tar.bz2
Replace another snippet with a call to gimple_range_ssa_names.
When the original patch was applied, I missed a spot which could also be rewritten to use gimple_range_ssa_names. * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): Replace sequence with a call to gimple_range_ssa_names.
-rw-r--r--gcc/tree-ssa-threadbackward.cc20
1 files changed, 3 insertions, 17 deletions
diff --git a/gcc/tree-ssa-threadbackward.cc b/gcc/tree-ssa-threadbackward.cc
index 9725f50..2a8cfa3 100644
--- a/gcc/tree-ssa-threadbackward.cc
+++ b/gcc/tree-ssa-threadbackward.cc
@@ -435,28 +435,14 @@ back_threader::find_paths_to_names (basic_block bb, bitmap interesting,
}
/* For other local defs process their uses, amending
imports on the way. */
- else if (gassign *ass = dyn_cast <gassign *> (def_stmt))
+ else
{
tree ssa[3];
- if (range_op_handler (ass))
- {
- ssa[0] = gimple_range_ssa_p (gimple_range_operand1 (ass));
- ssa[1] = gimple_range_ssa_p (gimple_range_operand2 (ass));
- ssa[2] = NULL_TREE;
- }
- else if (gimple_assign_rhs_code (ass) == COND_EXPR)
- {
- ssa[0] = gimple_range_ssa_p (gimple_assign_rhs1 (ass));
- ssa[1] = gimple_range_ssa_p (gimple_assign_rhs2 (ass));
- ssa[2] = gimple_range_ssa_p (gimple_assign_rhs3 (ass));
- }
- else
- continue;
- for (unsigned j = 0; j < 3; ++j)
+ unsigned lim = gimple_range_ssa_names (ssa, 3, def_stmt);
+ for (unsigned j = 0; j < lim; ++j)
{
tree rhs = ssa[j];
if (rhs
- && TREE_CODE (rhs) == SSA_NAME
&& bitmap_set_bit (m_imports,
SSA_NAME_VERSION (rhs)))
{