[COMMITTED,05/23] Add hashing support for prange.

Message ID 20240504083056.139719-6-aldyh@redhat.com
State New
Headers
Series prange: pointer ranges |

Commit Message

Aldy Hernandez May 4, 2024, 8:30 a.m. UTC
  gcc/ChangeLog:

	* value-range.cc (add_vrange): Add prange support.
---
 gcc/value-range.cc | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
  

Patch

diff --git a/gcc/value-range.cc b/gcc/value-range.cc
index 84113ccfbd0..62170a438bf 100644
--- a/gcc/value-range.cc
+++ b/gcc/value-range.cc
@@ -346,6 +346,22 @@  add_vrange (const vrange &v, inchash::hash &hstate,
       hstate.add_wide_int (bm.mask ());
       return;
     }
+  if (is_a <prange> (v))
+    {
+      const prange &r = as_a <prange> (v);
+      if (r.varying_p ())
+	hstate.add_int (VR_VARYING);
+      else
+	{
+	  hstate.add_int (VR_RANGE);
+	  hstate.add_wide_int (r.lower_bound ());
+	  hstate.add_wide_int (r.upper_bound ());
+	  irange_bitmask bm = r.get_bitmask ();
+	  hstate.add_wide_int (bm.value ());
+	  hstate.add_wide_int (bm.mask ());
+	}
+      return;
+    }
   if (is_a <frange> (v))
     {
       const frange &r = as_a <frange> (v);