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) | |
irange_bitmask (tree type, const wide_int &min, const wide_int &max) | |
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 |
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 |
Referenced by intersect(), operator!=(), operator==(), and union_().
|
inline |
References set_unknown().
References m_mask, m_value, mask(), value(), and verify_mask().
Support routines for value ranges. Copyright (C) 2019-2025 Free Software Foundation, Inc. Major hacks by Aldy Hernandez <aldyh@redhat.com> and Andrew MacLeod <amacleod@redhat.com>. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
References wi::clz(), m_mask, m_value, wi::mask(), TYPE_PRECISION, and wi::zero().
void irange_bitmask::dump | ( | FILE * | file | ) | const |
References WIDE_INT_PRINT_BUFFER_SIZE.
Referenced by debug().
|
inline |
References m_mask, and m_value.
Referenced by cfn_popcount::fold_range().
|
inline |
References m_mask.
|
inline |
References wi::bit_and(), irange_bitmask(), m_mask, m_value, wi::minus_one(), verify_mask(), and wi::zero().
Referenced by irange::get_bitmask(), irange::intersect_bitmask(), and operator_bitwise_and::op1_range().
|
inline |
References m_mask.
Referenced by get_known_nonzero_bits_1(), vrange::get_nonzero_bits(), ipcp_get_parm_bits(), ipcp_update_vr(), irange_bitmask(), operator_bitwise_and::op1_range(), irange::operator==(), print_irange_bitmasks(), propagate_bits_across_jump_function(), irange_storage::set_irange(), prange_storage::set_prange(), vrange::streamer_write_vrange, prange::update_bitmask(), and update_known_bitmask().
References m_mask, m_value, and unknown_p().
Referenced by operator_equal::fold_range(), operator_equal::fold_range(), operator_not_equal::fold_range(), and operator_not_equal::fold_range().
|
inline |
References irange_bitmask().
|
inline |
References irange_bitmask(), m_mask, m_value, and unknown_p().
|
inline |
References wide_int_storage::get_precision(), m_mask, m_value, verify_mask(), and wi::zero().
|
inline |
References m_mask, m_value, wi::minus_one(), verify_mask(), and wi::zero().
Referenced by irange_bitmask().
|
inline |
References irange_bitmask(), m_mask, m_value, and verify_mask().
Referenced by prange::union_(), and irange::union_bitmask().
|
inline |
References m_mask.
Referenced by member_p(), irange::operator==(), operator==(), print_irange_bitmasks(), irange::union_bitmask(), irange::update_bitmask(), and prange::update_bitmask().
|
inline |
References m_value.
Referenced by cfn_popcount::fold_range(), get_known_nonzero_bits_1(), vrange::get_nonzero_bits(), ipcp_get_parm_bits(), ipcp_update_vr(), irange_bitmask(), operator_bitwise_and::op1_range(), irange::operator==(), print_irange_bitmasks(), propagate_bits_across_jump_function(), irange_storage::set_irange(), prange_storage::set_prange(), vrange::streamer_write_vrange, prange::update_bitmask(), and update_known_bitmask().
void irange_bitmask::verify_mask | ( | ) | const |
References wi::bit_and(), gcc_assert, gcc_checking_assert, m_mask, and m_value.
Referenced by intersect(), irange_bitmask(), set_nonzero_bits(), set_unknown(), and union_().
|
private |
Referenced by get_nonzero_bits(), get_precision(), intersect(), irange_bitmask(), irange_bitmask(), mask(), member_p(), operator==(), set_nonzero_bits(), set_unknown(), union_(), unknown_p(), and verify_mask().
|
private |
Referenced by get_nonzero_bits(), intersect(), irange_bitmask(), irange_bitmask(), member_p(), operator==(), set_nonzero_bits(), set_unknown(), union_(), value(), and verify_mask().