21#ifndef GCC_VALUE_RANGE_STORAGE_H
22#define GCC_VALUE_RANGE_STORAGE_H
36 void *
alloc (
size_t size);
53 bool shared_p =
true);
126 bool shared_p =
true);
180 bool shared_p =
true);
static size_t size(const frange &r)
Definition value-range-storage.cc:512
void get_frange(frange &r, tree type) const
Definition value-range-storage.cc:548
bool fits_p(const frange &) const
Definition value-range-storage.cc:605
static frange_storage * alloc(vrange_internal_alloc &, const frange &r)
Definition value-range-storage.cc:520
bool m_neg_nan
Definition value-range-storage.h:174
bool m_pos_nan
Definition value-range-storage.h:173
DISABLE_COPY_AND_ASSIGN(frange_storage)
unsigned char m_num_ranges
Definition value-range-storage.h:172
const unsigned char m_max_ranges
Definition value-range-storage.h:171
bool equal_p(const frange &r) const
Definition value-range-storage.cc:594
enum value_range_kind m_kind
Definition value-range-storage.h:169
frange_pair m_pairs[1]
Definition value-range-storage.h:175
frange_storage(const frange &r)
Definition value-range-storage.cc:528
void set_frange(const frange &r)
Definition value-range-storage.cc:535
Definition value-range.h:603
static size_t size(const irange &r)
Definition value-range-storage.cc:439
irange_storage(const irange &r)
Definition value-range-storage.cc:299
static irange_storage * alloc(vrange_internal_alloc &, const irange &)
Definition value-range-storage.cc:289
bool equal_p(const irange &r) const
Definition value-range-storage.cc:422
unsigned short m_precision
Definition value-range-storage.h:82
HOST_WIDE_INT m_val[1]
Definition value-range-storage.h:93
const unsigned char m_max_ranges
Definition value-range-storage.h:85
void set_irange(const irange &r)
Definition value-range-storage.cc:318
unsigned short * write_lengths_address()
Definition value-range-storage.cc:274
const unsigned short * lengths_address() const
Definition value-range-storage.cc:281
bool fits_p(const irange &r) const
Definition value-range-storage.cc:455
enum value_range_kind m_kind
Definition value-range-storage.h:90
DISABLE_COPY_AND_ASSIGN(irange_storage)
void dump() const
Definition value-range-storage.cc:461
unsigned char m_num_ranges
Definition value-range-storage.h:88
void get_irange(irange &r, tree type) const
Definition value-range-storage.cc:364
Definition value-range.h:291
static prange_storage * alloc(vrange_internal_alloc &, const prange &, bool shared_p=true)
Definition value-range-storage.cc:615
tree m_pt
Definition value-range-storage.h:141
wide_int get_word(unsigned i, tree) const
Definition value-range-storage.h:146
static enum prange_kind prange_format(const prange &r, unsigned &num_words)
Definition value-range-storage.cc:669
friend void gt_pch_p_14vrange_storage(void *, void *, gt_pointer_operator, void *)
void set_prange(const prange &r)
Definition value-range-storage.cc:708
bool fits_p(const prange &r) const
Definition value-range-storage.cc:867
bool equal_p(const prange &r) const
Definition value-range-storage.cc:810
trailing_wide_ints< PRANGE_STORAGE_NINTS > m_trailing_ints
Definition value-range-storage.h:151
friend void gt_ggc_mx_vrange_storage(void *)
prange_storage(const prange &r)
Definition value-range-storage.cc:639
bool m_points_to_p
Definition value-range-storage.h:140
DISABLE_COPY_AND_ASSIGN(prange_storage)
enum prange_kind m_kind
Definition value-range-storage.h:138
void set_word(unsigned i, const T &x, tree)
Definition value-range-storage.h:148
void get_prange(prange &r, tree type) const
Definition value-range-storage.cc:748
bool m_has_bitmask
Definition value-range-storage.h:139
friend void gt_pch_nx_vrange_storage(void *)
Definition value-range.h:405
class vrange_storage * clone(const vrange &r, bool shared_p=true)
Definition value-range-storage.cc:111
class vrange_internal_alloc * m_alloc
Definition value-range-storage.h:40
vrange_storage * clone_varying(tree type)
Definition value-range-storage.cc:117
void * alloc(size_t size)
Definition value-range-storage.cc:96
DISABLE_COPY_AND_ASSIGN(vrange_allocator)
vrange_allocator(bool gc=false)
Definition value-range-storage.cc:82
void free(void *)
Definition value-range-storage.cc:102
vrange_storage * clone_undefined(tree type)
Definition value-range-storage.cc:129
Definition value-range-storage.cc:37
Definition value-range-storage.h:50
static vrange_storage * alloc(vrange_internal_alloc &, const vrange &, bool shared_p=true)
Definition value-range-storage.cc:144
enum value_range_discriminator m_discriminator
Definition value-range-storage.h:61
void get_vrange(vrange &r, tree type) const
Definition value-range-storage.cc:199
bool equal_p(const vrange &r) const
Definition value-range-storage.cc:249
void set_vrange(const vrange &r)
Definition value-range-storage.cc:159
vrange_storage(enum value_range_discriminator d)
Definition value-range-storage.h:60
bool fits_p(const vrange &r) const
Definition value-range-storage.cc:223
Definition value-range.h:88
#define GTY(x)
Definition coretypes.h:41
union tree_node * tree
Definition coretypes.h:97
void(*) gt_pointer_operator(void *, void *, void *)
Definition coretypes.h:469
poly_int< N, C > r
Definition poly-int.h:774
i
Definition poly-int.h:776
Definition value-range.h:592
Definition wide-int.h:1758
Definition gengtype.h:252
vrange_storage * ggc_alloc_vrange_storage(tree type)
Definition value-range-storage.cc:882
const unsigned int PRANGE_STORAGE_NINTS
Definition value-range-storage.h:115
prange_kind
Definition value-range-storage.h:107
@ PR_NONZERO
Definition value-range-storage.h:110
@ PR_VARYING
Definition value-range-storage.h:108
@ PR_ZERO
Definition value-range-storage.h:109
@ PR_OTHER
Definition value-range-storage.h:112
@ PR_UNDEFINED
Definition value-range-storage.h:107
@ PR_FULL
Definition value-range-storage.h:111
value_range_kind
Definition value-range.h:29
value_range_discriminator
Definition value-range.h:47
generic_wide_int< wide_int_storage > wide_int
Definition wide-int.h:343