Tested on x86-64 Linux.
gcc/ChangeLog:
* ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
* ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
* tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
with two arguments.
(find_unswitching_predicates_for_bb): Same.
* tree-vrp.cc (range_fold_unary_symbolics_p): Same.
* value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
* value-range.cc (irange::equal_p): Rename to...
(irange::operator==): ...this.
* value-range.h (irange::set): Remove.
(irange::operator==): Remove.
(irange::set_zero): Use set with two arguments.
* vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
(vr_values::extract_range_from_unary_expr): Same.
(check_for_binary_op_overflow): Same.
(bounds_of_var_in_loop): Same.
value_range save (m_vr);
m_vr.union_ (*other_vr);
- return !m_vr.equal_p (save);
+ return m_vr != save;
}
/* Return true if value range information in the lattice is yet unknown. */
static bool
equal (const value_range *a, const value_range *b)
{
- return (a->equal_p (*b)
+ return (*a == *b
&& types_compatible_p (a->type (), b->type ()));
}
static const bool empty_zero_p = true;
auto range_op = range_op_handler (code, TREE_TYPE (lhs));
int_range<2> rhs_range (TREE_TYPE (rhs));
if (CONSTANT_CLASS_P (rhs))
- rhs_range.set (rhs);
+ rhs_range.set (rhs, rhs);
if (!range_op.op1_range (true_range, TREE_TYPE (lhs),
int_range<2> (boolean_true_node,
boolean_true_node), rhs_range)
else
{
cmp = fold_build2 (EQ_EXPR, boolean_type_node, idx, low);
- lab_range.set (low);
+ lab_range.set (low, low);
}
/* Combine the expression with the existing one. */
{
/* ~X is simply -1 - X. */
value_range minusone;
- minusone.set (build_int_cst (vr0->type (), -1));
+ tree t = build_int_cst (vr0->type (), -1);
+ minusone.set (t, t);
range_fold_binary_expr (vr, MINUS_EXPR, expr_type, &minusone, vr0);
return true;
}
value_range_equiv::equal_p (const value_range_equiv &other,
bool ignore_equivs) const
{
- return (value_range::equal_p (other)
+ return (value_range::operator== (other)
&& (ignore_equivs || vr_bitmap_equal_p (m_equiv, other.m_equiv)));
}
}
bool
-irange::equal_p (const irange &other) const
+irange::operator== (const irange &other) const
{
if (legacy_mode_p ())
{
void normalize_symbolics (); // DEPRECATED
void normalize_addresses (); // DEPRECATED
bool may_contain_p (tree) const; // DEPRECATED
- void set (tree); // DEPRECATED
- bool equal_p (const irange &) const; // DEPRECATED
bool legacy_verbose_union_ (const class irange *); // DEPRECATED
bool legacy_verbose_intersect (const irange *); // DEPRECATED
return *this;
}
-inline void
-irange::set (tree val)
-{
- set (val, val);
-}
-
inline void
irange::set_undefined ()
{
m_base[0] = m_base[1] = error_mark_node;
}
-inline bool
-irange::operator== (const irange &r) const
-{
- return equal_p (r);
-}
-
// Return the lower bound of a sub-range. PAIR is the sub-range in
// question.
{
tree z = build_int_cst (type, 0);
if (legacy_mode_p ())
- set (z);
+ set (z, z);
else
irange_set (z, z);
}
if (TREE_CODE (op0) == SSA_NAME)
vr0 = *(get_value_range (op0));
else if (is_gimple_min_invariant (op0))
- vr0.set (op0);
+ vr0.set (op0, op0);
else
vr0.set_varying (TREE_TYPE (op0));
if (TREE_CODE (op1) == SSA_NAME)
vr1 = *(get_value_range (op1));
else if (is_gimple_min_invariant (op1))
- vr1.set (op1);
+ vr1.set (op1, op1);
else
vr1.set_varying (TREE_TYPE (op1));
/* Try with [OP0, OP0] and VR1. */
else
- n_vr0.set (op0);
+ n_vr0.set (op0, op0);
range_fold_binary_expr (vr, code, expr_type, &n_vr0, &vr1);
}
if (TREE_CODE (op0) == SSA_NAME)
vr0 = *(get_value_range (op0));
else if (is_gimple_min_invariant (op0))
- vr0.set (op0);
+ vr0.set (op0, op0);
else
vr0.set_varying (type);
if (TREE_CODE (op0) == SSA_NAME)
vr0 = *query->get_value_range (op0, s);
else if (TREE_CODE (op0) == INTEGER_CST)
- vr0.set (op0);
+ vr0.set (op0, op0);
else
vr0.set_varying (TREE_TYPE (op0));
if (TREE_CODE (op1) == SSA_NAME)
vr1 = *query->get_value_range (op1, s);
else if (TREE_CODE (op1) == INTEGER_CST)
- vr1.set (op1);
+ vr1.set (op1, op1);
else
vr1.set_varying (TREE_TYPE (op1));
if (TREE_CODE (init) == SSA_NAME)
query->range_of_expr (vr0, init, stmt);
else if (is_gimple_min_invariant (init))
- vr0.set (init);
+ vr0.set (init, init);
else
vr0.set_varying (TREE_TYPE (init));
tree tem = wide_int_to_tree (TREE_TYPE (init), wtmp);
if (TREE_CODE (init) == SSA_NAME)
query->range_of_expr (initvr, init, stmt);
else if (is_gimple_min_invariant (init))
- initvr.set (init);
+ initvr.set (init, init);
else
return false;
if (TREE_CODE (op0) == SSA_NAME)
vr0 = *(query->get_value_range (op0, stmt));
else if (is_gimple_min_invariant (op0))
- vr0.set (op0);
+ vr0.set (op0, op0);
else
return false;
if (TREE_CODE (op1) == SSA_NAME)
vr1 = *(query->get_value_range (op1, stmt));
else if (is_gimple_min_invariant (op1))
- vr1.set (op1);
+ vr1.set (op1, op1);
else
return false;