From 9c7dce1bc5fd90c660f9065cfdc10ea6c4742fdc Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Wed, 10 Jun 2020 13:18:11 +0200 Subject: Move evrp trapping conditional to its own function. --- gcc/gimple-ssa-evrp.c | 6 +++--- gcc/misc.h | 6 ++++++ gcc/vr-values.c | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) (limited to 'gcc') diff --git a/gcc/gimple-ssa-evrp.c b/gcc/gimple-ssa-evrp.c index c4b39d7..16b6432 100644 --- a/gcc/gimple-ssa-evrp.c +++ b/gcc/gimple-ssa-evrp.c @@ -347,14 +347,14 @@ public: void tmp_stats_remove_stmt (gimple *stmt, tree lhs) OVERRIDE { - if (flag_rvrp1_changes > 0) + if (evrp_trap_p ()) m_gimple_state.remove (stmt, lhs); } void tmp_stats_changed_phi (gphi *orig_phi, gphi *new_phi) OVERRIDE { gimple *save = m_gimple_state.save (orig_phi); - if (flag_rvrp1_changes > 0) + if (evrp_trap_p ()) m_gimple_state.trap_if_gimple_changed (new_phi); m_gimple_state.save (save); } @@ -373,7 +373,7 @@ public: bool fold_stmt (gimple_stmt_iterator *gsi) { bool res = simplifier.simplify (gsi); - if (flag_rvrp1_changes > 0) + if (evrp_trap_p ()) m_gimple_state.trap_if_gimple_changed (gsi_stmt (*gsi)); return res; } diff --git a/gcc/misc.h b/gcc/misc.h index 60d3893..2cfe6e4 100644 --- a/gcc/misc.h +++ b/gcc/misc.h @@ -69,3 +69,9 @@ private: const irange *m_new_range; class vr_values *m_vr_values; }; + +static inline bool +evrp_trap_p () +{ + return flag_rvrp1_changes > 0; +} diff --git a/gcc/vr-values.c b/gcc/vr-values.c index 28911dc..5f9e64e 100644 --- a/gcc/vr-values.c +++ b/gcc/vr-values.c @@ -51,6 +51,7 @@ along with GCC; see the file COPYING3. If not see #include "cfghooks.h" #include "range-op.h" #include "gimple-range-stmt.h" +#include "misc.h" /* Set value range VR to a non-negative range of type TYPE. */ @@ -4010,7 +4011,7 @@ simplify_conversion_using_ranges (gimple_stmt_iterator *gsi, gimple *stmt) // FIXME: This conversion has nothing to do with ranges, and the way // it uses global ranges versus local ranges is interfering with our // ability to diagnose differences between evrp and rvrp1. - if (flag_rvrp1_changes > 0) + if (evrp_trap_p ()) return false; /* Get the value-range of the inner operand. Use get_range_info in -- cgit v1.1