GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
class | vrange |
class | irange_bitmask |
class | irange |
class | int_range< N, RESIZABLE > |
class | prange |
class | unsupported_range |
class | nan_state |
class | frange |
class | vrange_visitor |
class | Value_Range |
union | Value_Range::buffer_type |
Namespaces | |
namespace | inchash |
Typedefs | |
typedef int_range< 3, true > | int_range_max |
typedef int_range< 2 > | value_range |
Enumerations | |
enum | value_range_kind { VR_UNDEFINED , VR_VARYING , VR_RANGE , VR_ANTI_RANGE , VR_NAN , VR_LAST } |
enum | value_range_discriminator { VR_IRANGE , VR_PRANGE , VR_FRANGE , VR_UNKNOWN } |
References gcc_checking_assert, and ggc_alloc().
References gcc_checking_assert, and ggc_alloc().
References r, TYPE_PRECISION, and wi::zero().
Referenced by irange::set_range_from_bitmask().
References vrange::dump().
void frange_arithmetic | ( | enum | tree_code, |
tree | type, | ||
REAL_VALUE_TYPE & | result, | ||
const REAL_VALUE_TYPE & | op1, | ||
const REAL_VALUE_TYPE & | op2, | ||
const REAL_VALUE_TYPE & | inf ) |
References frange_nextafter(), ggc_alloc(), MODE_COMPOSITE_P, real_arithmetic(), real_convert(), real_equal(), REAL_EXP, real_identical(), real_isdenormal(), real_isinf(), real_isneg(), real_iszero(), real_less(), REAL_MODE_FORMAT, real_nextafter(), REAL_VALUE_TYPE, and TYPE_MODE.
Referenced by cfn_sqrt::op1_range(), operator_mult::rv_fold(), foperator_div::rv_fold(), operator_plus::rv_fold(), and operator_minus::rv_fold().
void frange_nextafter | ( | enum | machine_mode, |
REAL_VALUE_TYPE & | value, | ||
const REAL_VALUE_TYPE & | inf ) |
References ggc_alloc(), MODE_COMPOSITE_P, real_convert(), real_isdenormal(), real_iszero(), REAL_MODE_FORMAT, real_nextafter(), and REAL_VALUE_TYPE.
Referenced by build_gt(), build_lt(), float_widen_lhs_range(), cfn_sqrt::fold_range(), cfn_sincos::fold_range(), frange_arithmetic(), frange_mpfr_arg1(), cfn_sqrt::op1_range(), and cfn_sincos::op1_range().
|
inline |
References frange_val_max(), r, real_identical(), and REAL_VALUE_TYPE.
Referenced by frange::normalize_kind(), and frange::verify_range().
|
inline |
References frange_val_min(), r, real_identical(), and REAL_VALUE_TYPE.
Referenced by frange::normalize_kind(), and frange::verify_range().
|
inline |
References dconstinf, HONOR_INFINITIES(), and real_max_representable().
Referenced by build_ge(), build_gt(), frange_val_is_max(), frange::normalize_kind(), operator_abs::op1_range(), cfn_signbit::op1_range(), frange::set(), frange::set_nonnegative(), and frange::set_varying().
|
inline |
References dconstninf, HONOR_INFINITIES(), and real_min_representable().
Referenced by build_le(), build_lt(), frange_val_is_min(), frange::normalize_kind(), cfn_signbit::op1_range(), frange::set(), and frange::set_varying().
|
extern |
References get_legacy_range(), ggc_alloc(), and is_a< irange >().
|
inline |
References gcc_checking_assert, wi::max_value(), irange::supports_p(), TYPE_PRECISION, and TYPE_SIGN.
Referenced by adjust_pointer_diff_expr(), check_for_binary_op_overflow(), cfn_goacc_dim::fold_range(), cfn_strlen::fold_range(), operator_cast::inside_domain_p(), max_limit(), and plus_minus_ranges().
|
inline |
References gcc_checking_assert, wi::min_value(), irange::supports_p(), TYPE_PRECISION, and TYPE_SIGN.
Referenced by check_for_binary_op_overflow(), operator_cast::inside_domain_p(), and min_limit().
References vrange::m_discriminator, and VR_FRANGE.
Referenced by inchash::add_vrange(), adjust_equivalence_range(), vrange_storage::alloc(), vrange_storage::equal_p(), vrange_storage::fits_p(), vrange_storage::get_vrange(), Value_Range::init(), vrange::operator=(), vrange::operator==(), vrange_storage::set_vrange(), and streamer_read_value_range().
References vrange::m_discriminator, and VR_IRANGE.
Referenced by inchash::add_vrange(), vrange_storage::alloc(), vrange_storage::equal_p(), vrange_storage::fits_p(), get_legacy_range(), vrange_storage::get_vrange(), Value_Range::init(), vrange::operator=(), vrange::operator==(), vrange_storage::set_vrange(), and streamer_read_value_range().
References vrange::m_discriminator, and VR_PRANGE.
Referenced by inchash::add_vrange(), vrange_storage::alloc(), vrange_storage::equal_p(), vrange_storage::fits_p(), vrange_storage::get_vrange(), has_pointer_operand_p(), Value_Range::init(), vrange::operator=(), vrange::operator==(), vrange_storage::set_vrange(), and streamer_read_value_range().
|
inline |
References vrange::m_discriminator, and VR_UNKNOWN.
Referenced by vrange::operator=().
References ggc_alloc(), SCALAR_FLOAT_TYPE_P, TYPE_MODE, TYPE_PRECISION, and TYPE_SIGN.
Referenced by gori_compute::condexpr_adjust(), fold_using_range::fold_stmt(), fur_list::get_operand(), gori_stmt_info::gori_stmt_info(), irange::intersect(), prange::intersect(), gimple_range_op_handler::maybe_builtin_call(), operator_not_equal::operand_check_p(), operator_equal::operand_check_p(), operator_lt::operand_check_p(), operator_le::operand_check_p(), operator_gt::operand_check_p(), operator_ge::operand_check_p(), operator_plus::operand_check_p(), operator_minus::operand_check_p(), operator_mult::operand_check_p(), operator_bitwise_not::operand_check_p(), operator_bitwise_xor::operand_check_p(), operator_bitwise_and::operand_check_p(), operator_bitwise_or::operand_check_p(), operator_min::operand_check_p(), operator_max::operand_check_p(), operator_logical_and::operand_check_p(), operator_logical_or::operand_check_p(), operator_abs::operand_check_p(), operator_negate::operand_check_p(), operator_lshift::operand_check_p(), operator_rshift::operand_check_p(), operator_logical_not::operand_check_p(), gori_compute::outgoing_edge_range_p(), range_is_either_true_or_false(), fold_using_range::range_of_cond_expr(), gimple_ranger::range_on_edge(), gimple_ranger::range_on_exit(), and relation_oracle::validate_relation().
References build_zero_cst(), vrange::contains_p(), vrange::type(), vrange::undefined_p(), and vrange::varying_p().
Referenced by cfn_ffs::fold_range(), cfn_clz::fold_range(), cfn_ctz::fold_range(), operator_min::fold_range(), operator_max::fold_range(), operator_plus::lhs_op1_relation(), operator_equal::op1_op2_relation(), operator_not_equal::op1_op2_relation(), operator_lt::op1_op2_relation(), operator_le::op1_op2_relation(), operator_gt::op1_op2_relation(), operator_ge::op1_op2_relation(), operator_cast::op1_range(), operator_cast::op1_range(), operator_cast::op1_range(), and operator_addr_expr::op1_range().
|
inline |
References gcc_checking_assert, get_max_float(), r, real_from_string(), REAL_MODE_FORMAT, REAL_VALUE_TYPE, and TYPE_MODE.
Referenced by frange_drop_inf(), frange_drop_infs(), frange_val_max(), cfn_sincos::op1_range(), and real_min_representable().
|
inline |
References r, real_max_representable(), real_value_negate(), and REAL_VALUE_TYPE.
Referenced by frange_drop_infs(), frange_drop_ninf(), frange_val_min(), and cfn_sincos::op1_range().
|
extern |
Return true, if VAL1 and VAL2 are equal values for VRP purposes.
References ggc_alloc(), and operand_equal_p().
Referenced by ipa_predicate::add_clause(), add_condition(), adjust_pointer_diff_expr(), and expr_eval_ops_equal_p().