GCC Middle and Back End API Reference
|
#include <gimple-range-fold.h>
Public Member Functions | |
bool | fold_stmt (vrange &r, gimple *s, class fur_source &src, tree name=NULL_TREE) |
Protected Member Functions | |
bool | range_of_range_op (vrange &r, gimple_range_op_handler &handler, fur_source &src) |
bool | range_of_call (vrange &r, gcall *call, fur_source &src) |
bool | range_of_cond_expr (vrange &r, gassign *cond, fur_source &src) |
bool | range_of_address (prange &r, gimple *s, fur_source &src) |
bool | range_of_phi (vrange &r, gphi *phi, fur_source &src) |
void | range_of_ssa_name_with_loop_info (vrange &, tree, class loop *, gphi *, fur_source &src) |
void | relation_fold_and_or (irange &lhs_range, gimple *s, fur_source &src, vrange &op1, vrange &op2) |
bool | condexpr_adjust (vrange &r1, vrange &r2, gimple *, tree cond, tree op1, tree op2, fur_source &src) |
|
protected |
References gimple_outgoing_range::compute_operand_range(), dyn_cast(), fur_source::get_operand(), gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs_code(), gimple_range_ssa_p(), fur_source::gori(), fur_source::gori_ssa(), range_def_chain::in_chain_p(), value_range::intersect(), vrange::intersect(), range_op_handler::op1_range(), range_op_handler::op2_range(), range_compatible_p(), range_false(), range_true(), SSA_NAME_DEF_STMT, value_range::supports_type_p(), tcc_comparison, TREE_CODE, TREE_CODE_CLASS, and TREE_TYPE.
Referenced by range_of_cond_expr().
bool fold_using_range::fold_stmt | ( | vrange & | r, |
gimple * | s, | ||
class fur_source & | src, | ||
tree | name = NULL_TREE ) |
References as_a(), gcc_checking_assert, gimple_assign_rhs_code(), gimple_get_lhs(), gimple_range_global(), gimple_range_ssa_p(), gimple_stmt_nonnegative_warnv_p(), INTEGRAL_TYPE_P, is_a(), r, range_cast(), range_compatible_p(), range_of_address(), range_of_call(), range_of_cond_expr(), range_of_phi(), range_of_range_op(), and TREE_TYPE.
Referenced by fold_range(), fold_range(), fold_range(), fold_range(), fold_range(), gimple_ranger::fold_range_internal(), fold_relations(), dom_ranger::range_of_stmt(), and path_range_query::range_of_stmt().
|
protected |
References poly_int< N, C >::from(), gcc_checking_assert, get_inner_reference(), fur_source::get_operand(), gimple_assign_rhs1(), gimple_assign_rhs_code(), gimple_get_lhs(), gimple_range_ssa_p(), fur_source::gori_ssa(), known_eq, known_gt, known_ne, mem_ref_offset(), NULL_TREE, offset, r, range_cast(), range_def_chain::register_dependency(), SIGNED, wi::to_poly_wide(), TREE_CODE, TREE_OPERAND, tree_single_nonzero_warnv_p(), TREE_TYPE, TYPE_OVERFLOW_WRAPS, TYPE_PRECISION, and wi::zero().
Referenced by fold_stmt().
|
protected |
References value_range::dump(), dump_file, dump_flags, gimple_call_fndecl(), gimple_call_lhs(), gimple_call_nonnull_arg(), gimple_call_nonnull_result_p(), gimple_range_global(), gimple_range_ssa_p(), gimple_range_type(), gimple_stmt_nonnegative_warnv_p(), ipa_return_value_range(), print_generic_expr(), r, TDF_DETAILS, TDF_SLIM, TREE_TYPE, and useless_type_conversion_p().
Referenced by fold_stmt().
|
protected |
References condexpr_adjust(), value_range::dump(), dump_file, dump_flags, gcc_checking_assert, fur_source::get_operand(), gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs3(), gimple_assign_rhs_code(), gimple_range_type(), r, range_compatible_p(), value_range::singleton_p(), TDF_DETAILS, TREE_TYPE, value_range::union_(), and value_range::zero_p().
Referenced by fold_stmt().
|
protected |
References CDI_DOMINATORS, dom_info_available_p(), dominated_by_p(), value_range::dump(), dump_file, dump_flags, g, fur_source::get_operand(), fur_source::get_phi_operand(), gimple_bb(), gimple_phi_arg_def(), gimple_phi_arg_edge(), gimple_phi_num_args(), gimple_phi_result(), gimple_range_ssa_p(), gimple_range_type(), fur_source::gori_ssa(), loop_containing_stmt(), loop_outer(), NULL, NULL_TREE, phi_analysis(), phi_analysis_available_p(), POINTER_TYPE_P, print_generic_expr(), fur_source::query(), relation_oracle::query(), r, range_of_ssa_name_with_loop_info(), range_def_chain::register_dependency(), fur_source::register_relation(), scev_initialized_p(), value_range::singleton_p(), irange::supports_p(), TDF_DETAILS, TDF_SLIM, TREE_TYPE, value_range::undefined_p(), value_range::union_(), value_range::varying_p(), and VREL_EQ.
Referenced by fold_stmt().
|
protected |
References as_a(), dump_file, dump_flags, EDGE_SUCC, range_op_handler::fold_range(), fputc(), gcc_checking_assert, fur_source::get_operand(), gimple_bb(), gimple_range_adjustment(), gimple_range_ssa_p(), gimple_range_type(), fur_source::gori_ssa(), is_a(), gimple_range_op_handler::lhs(), range_op_handler::lhs_op1_relation(), range_op_handler::lhs_op2_relation(), NULL, relation_trio::op1_op2(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), print_generic_expr(), print_relation(), fur_source::query_relation(), r, range_def_chain::register_dependency(), fur_source::register_outgoing_edges(), fur_source::register_relation(), relation_fold_and_or(), value_range::set_varying(), single_pred_p(), gimple_range_op_handler::stmt(), irange::supports_p(), TDF_DETAILS, TDF_SLIM, TREE_TYPE, and VREL_VARYING.
Referenced by fold_stmt().
|
protected |
References cfun, dump_file, dump_flags, gcc_checking_assert, get_global_range_query(), get_range_query(), fur_source::query(), r, range_of_var_in_loop(), TDF_DETAILS, TREE_CODE, and TREE_TYPE.
Referenced by range_of_phi().
|
protected |
References boolean_type_node, vrange::dump(), dump_file, dump_flags, fputc(), gimple_expr_code(), gimple_range_ssa_p(), fur_source::gori(), HONOR_NANS(), gimple_range_op_handler::lhs(), range_op_handler::op1_op2_relation(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), print_generic_expr(), range_cast(), range_false(), range_true(), relation_intersect(), relation_negate(), relation_union(), irange::singleton_p(), SSA_NAME_DEF_STMT, TDF_DETAILS, TDF_SLIM, TREE_CODE, TREE_TYPE, VREL_UNDEFINED, and VREL_VARYING.
Referenced by range_of_range_op().