Add an irange setter for wide_ints.

Just the same way as we have real_value setters for franges, we should
have a wide_int version for irange.  This matches the irange
constructor for wide_ints, and paves the way for the eventual
conversion of irange to wide ints.

gcc/ChangeLog:

	* value-range.h (irange::set): New version taking wide_int_ref.
This commit is contained in:
Aldy Hernandez 2022-09-27 08:00:40 +02:00
parent 303976a607
commit 1db05e1a1c

View file

@ -117,6 +117,8 @@ class GTY((user)) irange : public vrange
public:
// In-place setters.
virtual void set (tree, tree, value_range_kind = VR_RANGE) override;
void set (tree type, const wide_int_ref &, const wide_int_ref &,
value_range_kind = VR_RANGE);
virtual void set_nonzero (tree type) override;
virtual void set_zero (tree type) override;
virtual void set_nonnegative (tree type) override;
@ -687,6 +689,13 @@ irange::varying_compatible_p () const
return true;
}
inline void
irange::set (tree type, const wide_int_ref &min, const wide_int_ref &max,
value_range_kind kind)
{
set (wide_int_to_tree (type, min), wide_int_to_tree (type, max), kind);
}
inline bool
vrange::varying_p () const
{