[COMMITTED] Add an irange setter for wide_ints.

Message ID 20220927084453.3409529-1-aldyh@redhat.com
State New, archived
Headers
Series [COMMITTED] Add an irange setter for wide_ints. |

Commit Message

Aldy Hernandez Sept. 27, 2022, 8:44 a.m. UTC
  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.
---
 gcc/value-range.h | 9 +++++++++
 1 file changed, 9 insertions(+)
  

Patch

diff --git a/gcc/value-range.h b/gcc/value-range.h
index 413e54bda6f..556e31aece1 100644
--- a/gcc/value-range.h
+++ b/gcc/value-range.h
@@ -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
 {