aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2022-11-20 23:12:06 +0100
committerAldy Hernandez <aldyh@redhat.com>2023-04-26 10:28:12 +0200
commit3d8c2d3aefa85d1e5f15804dd6345a88d139f9fb (patch)
tree9cbfd4d41f879dbf770b4b1ea1b341e7d394d07b /gcc
parentf2b894b148755308de65593231721df4309fc6b3 (diff)
downloadgcc-3d8c2d3aefa85d1e5f15804dd6345a88d139f9fb.zip
gcc-3d8c2d3aefa85d1e5f15804dd6345a88d139f9fb.tar.gz
gcc-3d8c2d3aefa85d1e5f15804dd6345a88d139f9fb.tar.bz2
Refactor vrp_evaluate_conditional* and rename it.
gcc/ChangeLog: * vr-values.cc (simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops): Rename to... (simplify_using_ranges::legacy_fold_cond_overflow): ...this. (simplify_using_ranges::vrp_visit_cond_stmt): Rename to... (simplify_using_ranges::legacy_fold_cond): ...this. (simplify_using_ranges::fold_cond): Rename vrp_evaluate_conditional_warnv_with_ops to legacy_fold_cond_overflow. * vr-values.h (class vr_values): Replace vrp_visit_cond_stmt and vrp_evaluate_conditional_warnv_with_ops with legacy_fold_cond and legacy_fold_cond_overflow respectively.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/vr-values.cc25
-rw-r--r--gcc/vr-values.h5
2 files changed, 13 insertions, 17 deletions
diff --git a/gcc/vr-values.cc b/gcc/vr-values.cc
index 1d757ee..e8643ea 100644
--- a/gcc/vr-values.cc
+++ b/gcc/vr-values.cc
@@ -638,20 +638,21 @@ simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops_using_ranges
return res;
}
-/* Helper function for vrp_evaluate_conditional_warnv. */
+/* Helper function for legacy_fold_cond. */
tree
-simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops
- (gimple *stmt,
- enum tree_code code,
- tree op0, tree op1,
- bool *strict_overflow_p,
- bool *only_ranges)
+simplify_using_ranges::legacy_fold_cond_overflow (gimple *stmt,
+ bool *strict_overflow_p,
+ bool *only_ranges)
{
tree ret;
if (only_ranges)
*only_ranges = true;
+ tree_code code = gimple_cond_code (stmt);
+ tree op0 = gimple_cond_lhs (stmt);
+ tree op1 = gimple_cond_rhs (stmt);
+
/* We only deal with integral and pointer types. */
if (!INTEGRAL_TYPE_P (TREE_TYPE (op0))
&& !POINTER_TYPE_P (TREE_TYPE (op0)))
@@ -736,7 +737,7 @@ simplify_using_ranges::vrp_evaluate_conditional_warnv_with_ops
*TAKEN_EDGE_P. Otherwise, set *TAKEN_EDGE_P to NULL. */
void
-simplify_using_ranges::vrp_visit_cond_stmt (gcond *stmt, edge *taken_edge_p)
+simplify_using_ranges::legacy_fold_cond (gcond *stmt, edge *taken_edge_p)
{
tree val;
@@ -765,11 +766,7 @@ simplify_using_ranges::vrp_visit_cond_stmt (gcond *stmt, edge *taken_edge_p)
}
bool sop;
- val = vrp_evaluate_conditional_warnv_with_ops (stmt,
- gimple_cond_code (stmt),
- gimple_cond_lhs (stmt),
- gimple_cond_rhs (stmt),
- &sop, NULL);
+ val = legacy_fold_cond_overflow (stmt, &sop, NULL);
if (val)
*taken_edge_p = find_taken_edge (gimple_bb (stmt), val);
@@ -1471,7 +1468,7 @@ simplify_using_ranges::fold_cond (gcond *cond)
// FIXME: Audit the code below and make sure it never finds anything.
edge taken_edge;
- vrp_visit_cond_stmt (cond, &taken_edge);
+ legacy_fold_cond (cond, &taken_edge);
if (taken_edge)
{
diff --git a/gcc/vr-values.h b/gcc/vr-values.h
index a89902c..ff81415 100644
--- a/gcc/vr-values.h
+++ b/gcc/vr-values.h
@@ -35,9 +35,8 @@ public:
bool simplify (gimple_stmt_iterator *);
bool fold_cond (gcond *);
private:
- void vrp_visit_cond_stmt (gcond *, edge *);
- tree vrp_evaluate_conditional_warnv_with_ops (gimple *stmt, enum tree_code,
- tree, tree, bool *, bool *);
+ void legacy_fold_cond (gcond *, edge *);
+ tree legacy_fold_cond_overflow (gimple *stmt, bool *, bool *);
bool simplify_casted_cond (gcond *);
bool simplify_truth_ops_using_ranges (gimple_stmt_iterator *, gimple *);
bool simplify_div_or_mod_using_ranges (gimple_stmt_iterator *, gimple *);