|
| gori_stmt_info (vrange &lhs, gimple *stmt, range_query *q) |
|
gimple * | stmt () const |
|
tree | lhs () const |
|
tree | operand1 () const |
|
tree | operand2 () const |
|
bool | calc_op1 (vrange &r, const vrange &lhs_range) |
|
bool | calc_op1 (vrange &r, const vrange &lhs_range, const vrange &op2_range, relation_trio=TRIO_VARYING) |
|
bool | calc_op2 (vrange &r, const vrange &lhs_range, const vrange &op1_range, relation_trio=TRIO_VARYING) |
|
| operator bool () 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 |
|
◆ gori_stmt_info()
References boolean_type_node, gcc_checking_assert, fur_stmt::get_operand(), ggc_alloc(), gimple_expr_code(), gimple_range_ssa_p(), is_gimple_logical_p(), gimple_range_op_handler::lhs(), NULL, NULL_TREE, op1_range, op2_range, gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), range_compatible_p(), Value_Range::set_type(), ssa1, ssa2, gimple_range_op_handler::stmt(), and TREE_TYPE.
◆ calc_op1() [1/2]
◆ calc_op1() [2/2]
◆ calc_op2()
◆ discriminator_fail()
◆ dispatch_kind()
◆ fold_range()
References range_op_handler::dispatch_kind(), range_operator::fold_range(), gcc_assert, gcc_checking_assert, ggc_alloc(), range_op_handler::m_operator, range_operator::operand_check_p(), r, RO_IFF, RO_IFI, and RO_III.
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_value_range_from_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_mult::op1_range(), propagate_vr_across_jump_function(), fold_using_range::range_of_range_op(), and relation_oracle::validate_relation().
◆ lhs()
tree gimple_range_op_handler::lhs |
( |
| ) |
const |
|
inlineinherited |
References gimple_get_lhs(), and gimple_range_op_handler::m_stmt.
Referenced by gori_compute::compute_logical_operands(), gori_compute::compute_operand_range(), gori_calc_operands(), gori_name_helper(), gori_name_on_edge(), gori_on_edge(), gori_stmt_info(), gimple_range_op_handler::maybe_builtin_call(), fold_using_range::range_of_range_op(), and fold_using_range::relation_fold_and_or().
◆ lhs_op1_relation()
References range_op_handler::dispatch_kind(), gcc_checking_assert, ggc_alloc(), range_operator::lhs_op1_relation(), range_op_handler::m_operator, RO_FFF, RO_IFF, RO_III, RO_IPP, RO_PII, RO_PPP, and VREL_VARYING.
Referenced by fold_using_range::range_of_range_op().
◆ lhs_op2_relation()
◆ maybe_builtin_call()
void gimple_range_op_handler::maybe_builtin_call |
( |
| ) |
|
|
privateinherited |
References CASE_FLT_FN, CFN_LAST, gcc_checking_assert, ggc_alloc(), gimple_call_arg(), gimple_call_combined_fn(), gimple_call_fnspec(), gimple_call_internal_p(), gimple_call_lhs(), gimple_call_num_args(), gimple_range_type(), gimple_range_op_handler::lhs(), gimple_range_op_handler::m_op1, gimple_range_op_handler::m_op2, range_op_handler::m_operator, gimple_range_op_handler::m_stmt, oacc_get_ifn_dim_arg(), op_cfn_clrsb, op_cfn_clz(), op_cfn_clz_internal(), op_cfn_constant_float_p, op_cfn_constant_p, op_cfn_copysign, op_cfn_cos(), op_cfn_ctz(), op_cfn_ctz_internal(), op_cfn_ffs, op_cfn_goacc_dim_pos(), op_cfn_goacc_dim_size(), op_cfn_parity, op_cfn_pass_through_arg1, op_cfn_popcount, op_cfn_signbit, op_cfn_sin(), op_cfn_sqrt, op_cfn_strlen, op_cfn_tolower(), op_cfn_toupper(), op_cfn_ubsan_add, op_cfn_ubsan_mul, op_cfn_ubsan_sub, ptrdiff_type_node, range_compatible_p(), irange::supports_p(), frange::supports_p(), Value_Range::supports_type_p(), TREE_TYPE, and TYPE_PRECISION.
◆ maybe_non_standard()
void gimple_range_op_handler::maybe_non_standard |
( |
| ) |
|
|
privateinherited |
References gcc_checking_assert, ggc_alloc(), gimple_assign_lhs(), gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs_code(), gimple_range_op_handler::m_op1, gimple_range_op_handler::m_op2, range_op_handler::m_operator, gimple_range_op_handler::m_stmt, OP_WIDEN_MULT_SIGNED, OP_WIDEN_MULT_UNSIGNED, SIGNED, TREE_TYPE, and TYPE_SIGN.
◆ op1_op2_relation()
References range_op_handler::dispatch_kind(), gcc_checking_assert, ggc_alloc(), range_op_handler::m_operator, range_operator::op1_op2_relation(), RO_FFF, RO_IFF, RO_III, RO_IPP, and VREL_VARYING.
Referenced by gori_compute::compute_operand_range(), and fur_source::register_outgoing_edges().
◆ op1_range()
◆ op2_range()
References range_op_handler::dispatch_kind(), gcc_assert, gcc_checking_assert, ggc_alloc(), range_op_handler::m_operator, range_operator::op2_range(), range_operator::operand_check_p(), 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(), and gimple_range_op_handler::calc_op2().
◆ operand1()
tree gimple_range_op_handler::operand1 |
( |
| ) |
const |
|
inlineinherited |
References gcc_checking_assert, gimple_range_op_handler::m_op1, and range_op_handler::m_operator.
Referenced by gimple_range_op_handler::calc_op1(), gimple_range_op_handler::calc_op2(), assume_query::calculate_stmt(), gori_compute::compute_operand1_and_operand2_range(), gori_compute::compute_operand1_range(), gori_compute::compute_operand2_range(), gori_compute::compute_operand_range(), gimple_range_ssa_names(), gori_stmt_info(), phi_group::is_modifier_p(), gimple_ranger::prefill_stmt_dependencies(), fold_using_range::range_of_range_op(), fur_source::register_outgoing_edges(), and fold_using_range::relation_fold_and_or().
◆ operand2()
tree gimple_range_op_handler::operand2 |
( |
| ) |
const |
|
inlineinherited |
References gcc_checking_assert, gimple_range_op_handler::m_op2, and range_op_handler::m_operator.
Referenced by gimple_range_op_handler::calc_op1(), gimple_range_op_handler::calc_op2(), assume_query::calculate_stmt(), gori_compute::compute_operand1_and_operand2_range(), gori_compute::compute_operand1_range(), gori_compute::compute_operand2_range(), gori_compute::compute_operand_range(), gimple_range_ssa_names(), gori_stmt_info(), phi_group::is_modifier_p(), gimple_ranger::prefill_stmt_dependencies(), fold_using_range::range_of_range_op(), fur_source::register_outgoing_edges(), and fold_using_range::relation_fold_and_or().
◆ operand_check_p()
◆ operator bool()
range_op_handler::operator bool |
( |
| ) |
const |
|
inherited |
◆ overflow_free_p()
◆ range_op()
◆ stmt()
gimple * gimple_range_op_handler::stmt |
( |
| ) |
const |
|
inlineinherited |
◆ supported_p()
bool gimple_range_op_handler::supported_p |
( |
gimple * | s | ) |
|
|
staticinherited |
◆ m_op1
tree gimple_range_op_handler::m_op1 |
|
privateinherited |
◆ m_op2
tree gimple_range_op_handler::m_op2 |
|
privateinherited |
◆ m_operator
Referenced by range_op_handler::fold_range(), range_op_handler::lhs_op1_relation(), range_op_handler::lhs_op2_relation(), gimple_range_op_handler::maybe_builtin_call(), gimple_range_op_handler::maybe_non_standard(), range_op_handler::op1_op2_relation(), op1_range(), cfn_pass_through_arg1::op1_range(), range_op_handler::op2_range(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), range_op_handler::operand_check_p(), range_op_handler::overflow_free_p(), range_op_handler::range_op(), range_op_handler::range_op_handler(), and operator_equal::update_bitmask().
◆ m_stmt
gimple* gimple_range_op_handler::m_stmt |
|
privateinherited |
◆ op1_range
◆ op2_range
◆ ssa1
tree gori_stmt_info::ssa1 |
◆ ssa2
tree gori_stmt_info::ssa2 |
The documentation for this class was generated from the following file: