GCC Middle and Back End API Reference
|
#include <value-range.h>
Public Member Functions | |
irange_bitmask () | |
irange_bitmask (unsigned prec) | |
irange_bitmask (const wide_int &value, const wide_int &mask) | |
wide_int | value () const |
wide_int | mask () const |
void | set_unknown (unsigned prec) |
bool | unknown_p () const |
unsigned | get_precision () const |
void | union_ (const irange_bitmask &src) |
void | intersect (const irange_bitmask &src) |
bool | operator== (const irange_bitmask &src) const |
bool | operator!= (const irange_bitmask &src) const |
void | verify_mask () const |
void | dump (FILE *) const |
bool | member_p (const wide_int &val) const |
void | adjust_range (irange &r) const |
wide_int | get_nonzero_bits () const |
void | set_nonzero_bits (const wide_int &bits) |
Private Attributes | |
wide_int | m_value |
wide_int | m_mask |
|
inline |
|
inline |
References set_unknown().
References ggc_alloc(), m_mask, m_value, mask(), value(), and verify_mask().
References wi::ctz(), gcc_checking_assert, ggc_alloc(), irange::intersect(), irange::invert(), m_mask, m_value, wi::one(), r, TYPE_PRECISION, unknown_p(), value(), VR_ANTI_RANGE, and wi::zero().
Referenced by irange::intersect_bitmask().
References pretty_printer::buffer, ggc_alloc(), m_mask, m_value, MAX, pp_flush(), pp_needs_newline, pp_string(), print_hex(), print_hex_buf_size(), output_buffer::stream, and WIDE_INT_PRINT_BUFFER_SIZE.
Referenced by debug().
|
inline |
References m_mask, and m_value.
Referenced by irange::contains_p(), cfn_popcount::fold_range(), and irange::set_range_from_bitmask().
|
inline |
References wide_int_storage::get_precision(), and m_mask.
|
inline |
References wi::bit_and(), wide_int_storage::get_precision(), ggc_alloc(), m_mask, m_value, wi::minus_one(), verify_mask(), and wi::zero().
Referenced by irange::get_bitmask(), prange::intersect(), and irange::intersect_bitmask().
|
inline |
References m_mask.
Referenced by inchash::add_vrange(), vrange::get_nonzero_bits(), ipcp_get_parm_bits(), ipcp_update_vr(), irange_bitmask(), print_irange_bitmasks(), propagate_bits_across_jump_function(), irange_storage::set_irange(), prange_storage::set_prange(), irange::set_range_from_bitmask(), and prange::update_bitmask().
References ggc_alloc(), m_mask, m_value, and unknown_p().
Referenced by operator_equal::fold_range(), operator_not_equal::fold_range(), operator_not_equal::fold_range(), and operator_equal::fold_range().
|
inline |
|
inline |
References ggc_alloc(), m_mask, m_value, and unknown_p().
References wide_int_storage::get_precision(), ggc_alloc(), m_mask, m_value, verify_mask(), and wi::zero().
Referenced by irange::set_range_from_bitmask().
References ggc_alloc(), m_mask, m_value, wi::minus_one(), verify_mask(), and wi::zero().
Referenced by irange::invert(), irange_bitmask(), irange::set(), prange::set(), prange::set_nonzero(), irange::set_nonzero(), prange::set_varying(), and irange::set_varying().
|
inline |
References ggc_alloc(), m_mask, m_value, and verify_mask().
Referenced by irange::union_bitmask().
|
inline |
|
inline |
References m_value.
Referenced by inchash::add_vrange(), adjust_range(), cfn_popcount::fold_range(), vrange::get_nonzero_bits(), ipcp_get_parm_bits(), ipcp_update_vr(), irange_bitmask(), print_irange_bitmasks(), propagate_bits_across_jump_function(), irange_storage::set_irange(), prange_storage::set_prange(), irange::set_range_from_bitmask(), and prange::update_bitmask().
void irange_bitmask::verify_mask | ( | ) | const |
References wi::bit_and(), gcc_assert, gcc_checking_assert, wide_int_storage::get_precision(), m_mask, and m_value.
Referenced by intersect(), irange_bitmask(), set_nonzero_bits(), set_unknown(), union_(), and irange::verify_range().
|
private |
Referenced by adjust_range(), dump(), get_nonzero_bits(), get_precision(), intersect(), irange_bitmask(), mask(), member_p(), operator==(), set_nonzero_bits(), set_unknown(), union_(), unknown_p(), and verify_mask().
|
private |
Referenced by adjust_range(), dump(), get_nonzero_bits(), intersect(), irange_bitmask(), member_p(), operator==(), set_nonzero_bits(), set_unknown(), union_(), value(), and verify_mask().