summaryrefslogtreecommitdiff
path: root/gcc/value-range-storage.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/value-range-storage.h')
-rw-r--r--gcc/value-range-storage.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/value-range-storage.h b/gcc/value-range-storage.h
index 5a3336b673b..3fac5ea2f86 100644
--- a/gcc/value-range-storage.h
+++ b/gcc/value-range-storage.h
@@ -100,6 +100,25 @@ private:
trailing_wide_ints<MAX_INTS> m_ints;
};
+// A chunk of memory to store an frange to long term memory.
+
+class GTY (()) frange_storage_slot
+{
+ public:
+ static frange_storage_slot *alloc_slot (vrange_allocator &, const frange &r);
+ void set_frange (const frange &r);
+ void get_frange (frange &r, tree type) const;
+ bool fits_p (const frange &) const;
+ private:
+ frange_storage_slot (const frange &r) { set_frange (r); }
+ DISABLE_COPY_AND_ASSIGN (frange_storage_slot);
+
+ // We can get away with just storing the properties because the type
+ // can be gotten from the SSA, and UNDEFINED is unsupported, so it
+ // can only be a range.
+ frange_props m_props;
+};
+
class obstack_vrange_allocator : public vrange_allocator
{
public: