diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2018-11-14 16:29:41 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2018-11-14 16:29:41 +0000 |
commit | ff361cc65f8e90aa77884c93d77e592cc470d6b7 (patch) | |
tree | 8b95736bf2742adb4c897e564733110891f59e8b /gcc/tree-vrp.c | |
parent | 62ec3fe8f1bb871c19b6d30b3051443293276d54 (diff) | |
download | gcc-ff361cc65f8e90aa77884c93d77e592cc470d6b7.zip gcc-ff361cc65f8e90aa77884c93d77e592cc470d6b7.tar.gz gcc-ff361cc65f8e90aa77884c93d77e592cc470d6b7.tar.bz2 |
* gimple-ssa-evrp-analyze.c
(evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
ignore_equivs_equal_p to equal_p.
* ipa-cp.c (meet_with_1): Use equal_p instead of
ignore_equivs_equal_p.
* ipa-prop.c (ipa_vr_ggc_hash_traits::equal): Same.
* tree-vrp.c (value_range::ignore_equivs_equal_p): Remove.
(value_range::operator==): Remove.
(value_range::operator!=): Remove.
(vrp_prop::visit_stmt): Use equal_p.
* tree-vrp.h (value_range): Remove operator==, operator!=,
ignore_equivs_equal_p.
* vr-values.c (update_value_range): Use equal_p.
From-SVN: r266150
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index f498386..53d5bd6 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -210,37 +210,27 @@ value_range::check () } } -/* Returns TRUE if THIS == OTHER. Ignores the equivalence bitmap if - IGNORE_EQUIVS is TRUE. */ - -bool -value_range::equal_p (const value_range &other, bool ignore_equivs) const -{ - return (ignore_equivs_equal_p (other) - && (ignore_equivs - || vrp_bitmap_equal_p (m_equiv, other.m_equiv))); -} - -/* Return equality while ignoring equivalence bitmap. */ +/* Equality operator. We purposely do not overload ==, to avoid + confusion with the equality bitmap in the derived value_range + class. */ bool -value_range_base::ignore_equivs_equal_p (const value_range_base &other) const +value_range_base::equal_p (const value_range_base &other) const { return (m_kind == other.m_kind && vrp_operand_equal_p (m_min, other.m_min) && vrp_operand_equal_p (m_max, other.m_max)); } -bool -value_range::operator== (const value_range &other) const -{ - return equal_p (other, /*ignore_equivs=*/false); -} +/* Returns TRUE if THIS == OTHER. Ignores the equivalence bitmap if + IGNORE_EQUIVS is TRUE. */ bool -value_range::operator!= (const value_range &other) const +value_range::equal_p (const value_range &other, bool ignore_equivs) const { - return !(*this == other); + return (value_range_base::equal_p (other) + && (ignore_equivs + || vrp_bitmap_equal_p (m_equiv, other.m_equiv))); } /* Return TRUE if this is a symbolic range. */ @@ -5382,7 +5372,7 @@ vrp_prop::visit_stmt (gimple *stmt, edge *taken_edge_p, tree *output_p) value_range new_vr; extract_range_basic (&new_vr, use_stmt); const value_range *old_vr = get_value_range (use_lhs); - if (*old_vr != new_vr) + if (!old_vr->equal_p (new_vr, /*ignore_equivs=*/false)) res = SSA_PROP_INTERESTING; else res = SSA_PROP_NOT_INTERESTING; |