#include <range-op.h>
|
| | range_op_handler () |
| | range_op_handler (unsigned) |
| | operator bool () const |
| const range_operator * | range_op () const |
| bool | fold_range (vrange &r, tree type, const vrange &lh, const vrange &rh, relation_trio=TRIO_VARYING) const |
| bool | op1_range (vrange &r, tree type, const vrange &lhs, const vrange &op2, relation_trio=TRIO_VARYING) const |
| bool | op2_range (vrange &r, tree type, const vrange &lhs, const vrange &op1, relation_trio=TRIO_VARYING) const |
| relation_kind | lhs_op1_relation (const vrange &lhs, const vrange &op1, const vrange &op2, relation_kind=VREL_VARYING) const |
| relation_kind | lhs_op2_relation (const vrange &lhs, const vrange &op1, const vrange &op2, relation_kind=VREL_VARYING) const |
| relation_kind | op1_op2_relation (const vrange &lhs, const vrange &op1, const vrange &op2) const |
| bool | overflow_free_p (const vrange &lh, const vrange &rh, relation_trio=TRIO_VARYING) const |
| bool | operand_check_p (tree, tree, tree) const |
◆ range_op_handler() [1/2]
| range_op_handler::range_op_handler |
( |
| ) |
|
◆ range_op_handler() [2/2]
| range_op_handler::range_op_handler |
( |
unsigned | code | ) |
|
◆ discriminator_fail()
| void range_op_handler::discriminator_fail |
( |
const vrange & | r1, |
|
|
const vrange & | r2, |
|
|
const vrange & | r3 ) const |
|
protected |
◆ dispatch_kind()
| unsigned range_op_handler::dispatch_kind |
( |
const vrange & | lhs, |
|
|
const vrange & | op1, |
|
|
const vrange & | op2 ) const |
|
protected |
◆ fold_range()
References as_a(), dispatch_kind(), gcc_assert, gcc_checking_assert, m_operator, r, RO_FFF, RO_FII, RO_IFF, RO_IFI, RO_III, vrange::type(), and vrange::undefined_p().
Referenced by compute_distributive_range(), evaluate_conditions_for_known_args(), simplify_using_ranges::fold_cond_with_ops(), cfn_ubsan::fold_range(), operator_bitwise_not::fold_range(), operator_negate::fold_range(), range_query::get_tree_range(), ipa_vr_intersect_with_arith_jfunc(), ipa_vr_operation_and_type_effects(), operator_pointer_diff::op1_op2_relation_effect(), foperator_div::op1_range(), operator_cast::op1_range(), operator_exact_divide::op1_range(), operator_minus::op1_range(), operator_mult::op1_range(), operator_mult::op1_range(), operator_plus::op1_range(), operator_plus::op1_range(), fold_using_range::range_of_range_op(), range_of_var_in_loop(), gori_compute::refine_using_relation(), and shifted_range_nonzero_p().
◆ lhs_op1_relation()
References as_a(), dispatch_kind(), gcc_checking_assert, m_operator, RO_FFF, RO_IFF, RO_III, RO_IPP, RO_PII, RO_PPI, RO_PPP, and VREL_VARYING.
Referenced by fold_using_range::range_of_range_op().
◆ lhs_op2_relation()
◆ op1_op2_relation()
References as_a(), dispatch_kind(), gcc_checking_assert, m_operator, RO_FFF, RO_IFF, RO_III, RO_IPP, and VREL_VARYING.
Referenced by gori_compute::compute_operand_range(), dom_oracle::recomputed_relation(), fur_source::register_outgoing_edges(), and fold_using_range::relation_fold_and_or().
◆ op1_range()
◆ op2_range()
References as_a(), dispatch_kind(), gcc_assert, gcc_checking_assert, m_operator, r, RO_FFF, RO_FIF, RO_III, RO_IPP, RO_PIP, vrange::type(), and vrange::undefined_p().
Referenced by gimple_range_op_handler::calc_op1(), gimple_range_op_handler::calc_op2(), fold_using_range::condexpr_adjust(), and gori_compute::refine_using_relation().
◆ operand_check_p()
◆ operator bool()
| range_op_handler::operator bool |
( |
| ) |
const |
◆ overflow_free_p()
◆ range_op()
◆ m_operator
Referenced by fold_range(), lhs_op1_relation(), lhs_op2_relation(), gimple_range_op_handler::maybe_builtin_call(), gimple_range_op_handler::maybe_non_standard(), op1_op2_relation(), cfn_signbit::op1_range(), op1_range(), op2_range(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), operand_check_p(), operator bool(), overflow_free_p(), range_op_handler(), and pointer_plus_operator::update_bitmask().
The documentation for this class was generated from the following files: