GCC Middle and Back End API Reference
|
#include <value-range.h>
Protected Attributes | |
enum value_range_kind | m_kind: 8 |
enum value_range_discriminator | m_discriminator: 4 |
|
inline |
References irange::set_undefined().
|
inline |
References operator=().
|
finaloverride |
References vrange_visitor::visit().
|
pure virtualinherited |
Referenced by value_range::accept(), and vrange::dump().
Implements vrange.
References vrange::varying_p().
|
inherited |
References vrange::accept(), pp_flush(), pp_needs_newline(), and pretty_printer::set_output_stream().
Referenced by assume_query::calculate_phi(), assume_query::calculate_stmt(), phi_group::dump(), value_range::dump(), dump_strlen_info(), dump_value_range(), gori_compute::logical_combine(), phi_analyzer::process_phi(), and fold_using_range::relation_fold_and_or().
|
virtualinherited |
Reimplemented in irange, and prange.
References TYPE_PRECISION.
Referenced by value_range::get_bitmask(), vrange::get_nonzero_bits(), and update_known_bitmask().
|
inherited |
Implements vrange.
References as_a(), gcc_unreachable, operator=(), r, set_undefined(), vrange::undefined_p(), and vrange::varying_p().
unsupported_range & unsupported_range::operator= | ( | const unsupported_range & | r | ) |
References gcc_unreachable, r, set_undefined(), set_varying(), and void_type_node.
Referenced by intersect(), union_(), and unsupported_range().
References as_a(), gcc_unreachable, is_a< frange >(), is_a< irange >(), and is_a< prange >().
|
finaloverridevirtual |
Implements vrange.
References set_varying(), and TREE_TYPE.
|
finaloverridevirtual |
Implements vrange.
References set_varying().
|
finaloverridevirtual |
Implements vrange.
References set_varying().
|
inherited |
References gcc_checking_assert, TYPE_PRECISION, vrange::undefined_p(), vrange::update_bitmask(), and wi::zero().
Referenced by operator_bitwise_and::op1_range().
|
finaloverridevirtual |
Implements vrange.
References vrange::m_kind, and VR_UNDEFINED.
Referenced by intersect(), and operator=().
|
finaloverridevirtual |
Implements vrange.
References vrange::m_kind, and VR_VARYING.
Referenced by operator=(), set(), set_nonnegative(), set_nonzero(), and set_zero().
|
finaloverridevirtual |
Implements vrange.
References set_varying().
|
finaloverridevirtual |
Implements vrange.
|
finaloverridevirtual |
Implements vrange.
References void_type_node.
|
inlineinherited |
References vrange::m_kind, and VR_UNDEFINED.
Referenced by inchash::add_vrange(), adjust_equivalence_range(), gimple_range_op_handler::calc_op1(), gimple_range_op_handler::calc_op2(), array_bounds_checker::check_array_ref(), check_for_binary_op_overflow(), frange::clear_nan(), frange::combine_zeros(), compare_nonzero_chars(), compute_distributive_range(), frange::contains_p(), irange::contains_p(), prange::contains_p(), strlen_pass::count_nonzero_bytes_addr(), determine_value_range(), dr_step_indicator(), empty_range_varying(), expr_not_equal_to(), expr_to_aff_combination(), find_case_label_range(), find_case_label_ranges(), find_range_for_lhs(), frange::flush_denormals_to_zero(), cfn_clrsb::fold_range(), cfn_clz::fold_range(), cfn_ctz::fold_range(), cfn_ffs::fold_range(), cfn_isfinite::fold_range(), cfn_isinf::fold_range(), cfn_isnormal::fold_range(), cfn_popcount::fold_range(), operator_addr_expr::fold_range(), operator_equal::fold_range(), operator_equal::fold_range(), operator_equal::fold_range(), operator_logical_not::fold_range(), operator_lshift::fold_range(), operator_not_equal::fold_range(), operator_not_equal::fold_range(), operator_not_equal::fold_range(), operator_rshift::fold_range(), range_op_handler::fold_range(), irange::get_bitmask(), get_known_nonzero_bits_1(), vrange::get_nonzero_bits(), get_range_strlen_dynamic(), get_ref_base_and_extent(), get_shift_range(), get_size_range(), handle_printf_call(), frange::intersect(), irange::intersect(), irange::intersect(), prange::intersect(), intersect(), irange::intersect_bitmask(), irange::invert(), prange::invert(), ipa_vr_operation_and_type_effects(), irange::irange_contains_p(), irange::irange_single_pair_union(), frange::known_isfinite(), simplify_using_ranges::legacy_fold_cond_overflow(), operator_bitwise_and::lhs_op1_relation(), operator_cast::lhs_op1_relation(), operator_cast::lhs_op1_relation(), operator_cast::lhs_op1_relation(), operator_cast::lhs_op1_relation(), operator_minus::lhs_op1_relation(), operator_plus::lhs_op1_relation(), operator_rshift::lhs_op1_relation(), frange::lower_bound(), prange::lower_bound(), frange::maybe_isinf(), frange::maybe_isnan(), frange::maybe_isnan(), frange::nan_signbit_p(), irange::nonzero_p(), foperator_div::op1_range(), foperator_unordered_ge::op1_range(), foperator_unordered_gt::op1_range(), foperator_unordered_le::op1_range(), foperator_unordered_lt::op1_range(), operator_bitwise_xor::op1_range(), operator_equal::op1_range(), operator_equal::op1_range(), operator_ge::op1_range(), operator_ge::op1_range(), operator_ge::op1_range(), operator_gt::op1_range(), operator_gt::op1_range(), operator_gt::op1_range(), operator_le::op1_range(), operator_le::op1_range(), operator_le::op1_range(), operator_lt::op1_range(), operator_lt::op1_range(), operator_lt::op1_range(), operator_mult::op1_range(), operator_not_equal::op1_range(), operator_not_equal::op1_range(), operator_rshift::op1_range(), foperator_div::op2_range(), foperator_unordered_ge::op2_range(), foperator_unordered_gt::op2_range(), foperator_unordered_le::op2_range(), foperator_unordered_lt::op2_range(), operator_ge::op2_range(), operator_ge::op2_range(), operator_ge::op2_range(), operator_gt::op2_range(), operator_gt::op2_range(), operator_gt::op2_range(), operator_le::op2_range(), operator_le::op2_range(), operator_le::op2_range(), operator_lt::op2_range(), operator_lt::op2_range(), operator_lt::op2_range(), range_op_handler::op2_range(), frange::operator==(), prange::operator==(), operator_minus::overflow_free_p(), operator_mult::overflow_free_p(), operator_plus::overflow_free_p(), phi_group::phi_group(), phi_analyzer::process_phi(), range_fits_type_p(), range_includes_zero_p(), fur_source::register_outgoing_edges(), vrange::set_nonzero_bits(), irange::set_range_from_bitmask(), set_switch_stmt_execution_predicate(), frange::signbit_p(), simplify_using_ranges::simplify(), simplify_using_ranges::simplify_bit_ops_using_ranges(), simplify_using_ranges::simplify_casted_compare(), simplify_using_ranges::simplify_compare_using_ranges_1(), simplify_conversion_using_ranges(), simplify_using_ranges::simplify_div_or_mod_using_ranges(), simplify_using_ranges::simplify_float_conversion_using_ranges(), simplify_using_ranges::simplify_switch_using_ranges(), size_must_be_zero_p(), split_constant_offset(), simplify_using_ranges::two_valued_val_range_p(), frange::type(), prange::type(), value_range::undefined_p(), frange::union_(), irange::union_(), prange::union_(), union_(), irange::union_bitmask(), unswitch_predicate::unswitch_predicate(), irange::update_bitmask(), pointer_plus_operator::update_bitmask(), prange::update_bitmask(), update_known_bitmask(), frange::update_nan(), frange::update_nan(), frange::update_nan(), frange::upper_bound(), prange::upper_bound(), prange::varying_compatible_p(), vect_get_range_info(), frange::verify_range(), and vr_set_zero_nonzero_bits().
Implements vrange.
References as_a(), gcc_unreachable, operator=(), r, vrange::undefined_p(), and vrange::varying_p().
|
virtualinherited |
Reimplemented in irange.
Referenced by vrange::set_nonzero_bits(), and value_range::update_bitmask().
|
inlineinherited |
References vrange::m_kind, and VR_VARYING.
Referenced by gimple_infer_range::add_range(), gimple_outgoing_range::calc_switch_ranges(), phi_group::calculate_using_modifier(), array_bounds_checker::check_array_ref(), compare_nonzero_chars(), compute_distributive_range(), frange::contains_p(), prange::contains_p(), contains_p(), strlen_pass::count_nonzero_bytes_addr(), determine_value_range(), expr_to_aff_combination(), find_case_label_range(), find_case_label_ranges(), operator_cast::fold_range(), operator_logical_not::fold_range(), get_range_strlen_dynamic(), get_ref_base_and_extent(), frange::intersect(), irange::intersect(), prange::intersect(), intersect(), irange::invert(), prange::invert(), ipa_vr_operation_and_type_effects(), irange::irange_contains_p(), irange::irange_single_pair_union(), frange::known_isfinite(), gori_compute::logical_combine(), frange::maybe_isinf(), ipcp_vr_lattice::meet_with_1(), operator_bitwise_xor::op1_range(), frange::operator==(), prange::operator==(), phi_group::phi_group(), phi_analyzer::process_phi(), range_fits_type_p(), range_includes_zero_p(), simplify_using_ranges::simplify_casted_compare(), simplify_using_ranges::simplify_compare_using_ranges_1(), simplify_conversion_using_ranges(), simplify_using_ranges::simplify_div_or_mod_using_ranges(), simplify_using_ranges::simplify_float_conversion_using_ranges(), simplify_using_ranges::simplify_switch_using_ranges(), simplify_using_ranges::two_valued_val_range_p(), frange::union_(), irange::union_(), prange::union_(), union_(), unswitch_predicate::unswitch_predicate(), value_range::varying_p(), and vr_set_zero_nonzero_bits().
|
protectedinherited |
|
protectedinherited |
Referenced by frange::combine_zeros(), frange::contains_p(), frange::internal_singleton_p(), frange::intersect(), irange::intersect(), irange::intersect(), frange::intersect_nans(), irange::invert(), frange::known_isfinite(), frange::known_isinf(), frange::known_isnan(), frange::maybe_isinf(), prange::nonzero_p(), frange::normalize_kind(), irange::normalize_kind(), frange::operator=(), irange::operator=(), prange::operator=(), vrange::operator=(), frange::operator==(), prange::operator==(), frange::set(), irange::set(), prange::set(), frange::set_nan(), irange::set_nonzero(), prange::set_nonzero(), frange::set_undefined(), irange::set_undefined(), prange::set_undefined(), set_undefined(), frange::set_varying(), irange::set_varying(), prange::set_varying(), set_varying(), prange::set_zero(), prange::singleton_p(), vrange::undefined_p(), irange::union_(), frange::union_nans(), irange::update_bitmask(), prange::update_bitmask(), irange::varying_compatible_p(), vrange::varying_p(), frange::verify_range(), irange::verify_range(), prange::verify_range(), frange::zero_p(), irange::zero_p(), and prange::zero_p().