GCC Middle and Back End API Reference
|
#include <gimple-range-gori.h>
Protected Member Functions | |
bool | has_def_chain (tree name) |
bool | def_chain_in_bitmap_p (tree name, bitmap b) |
void | add_def_chain_to_bitmap (bitmap b, tree name) |
bitmap | get_def_chain (tree name) |
bitmap | get_imports (tree name) |
Protected Attributes | |
bitmap_obstack | m_bitmaps |
Private Attributes | |
int_range< 2 > | m_bool_zero |
int_range< 2 > | m_bool_one |
gimple_outgoing_range | outgoing |
range_tracer | tracer |
int | m_not_executable_flag |
vec< bitmap > | m_outgoing |
vec< bitmap > | m_incoming |
bitmap | m_maybe_variant |
vec< rdc > | m_def_chain |
int | m_logical_depth |
gori_compute::gori_compute | ( | int | not_executable_flag = 0 | ) |
References b, bitmap_ior_into(), range_def_chain::get_def_chain(), and r.
Referenced by gori_map::maybe_add_gori().
|
privateinherited |
References BITMAP_ALLOC, bitmap_ior_into(), cfun, EDGE_COUNT, gcc_checking_assert, ggc_alloc(), gimple_bb(), gimple_cond_lhs(), gimple_cond_rhs(), gimple_outgoing_range_stmt_p(), gimple_range_ssa_p(), gimple_switch_index(), basic_block_def::index, last_basic_block_for_fn, range_def_chain::m_bitmaps, gori_map::m_incoming, gori_map::m_maybe_variant, gori_map::m_outgoing, gori_map::maybe_add_gori(), NULL, single_succ_p(), and basic_block_def::succs.
Referenced by gori_map::exports(), and gori_map::imports().
References b, bitmap_bit_p, range_def_chain::get_imports(), and SSA_NAME_VERSION.
Referenced by compute_logical_operands().
|
private |
References range_def_chain::chain_import_p(), compute_operand_range(), dump_file, fur_source::get_operand(), ggc_alloc(), gimple_expr_code(), gimple_range_ssa_p(), range_tracer::header(), gimple_range_op_handler::lhs(), m_bool_one, m_bool_zero, NULL, NULL_TREE, print_generic_expr(), SSA_NAME_DEF_STMT, gimple_range_op_handler::stmt(), TDF_SLIM, tracer, range_tracer::trailer(), and irange::zero_p().
Referenced by compute_operand_range().
|
private |
|
private |
References gimple_range_op_handler::calc_op1(), vrange::dump(), Value_Range::dump(), dump_file, fputc(), fur_source::get_operand(), ggc_alloc(), gimple_get_lhs(), gimple_range_ssa_p(), range_tracer::header(), relation_trio::lhs_op1(), relation_trio::lhs_op2(), relation_trio::op1_op2(), op1_range(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), range_tracer::print(), print_generic_expr(), print_gimple_stmt(), r, refine_using_relation(), gimple_range_op_handler::stmt(), TDF_SLIM, tracer, range_tracer::trailer(), TREE_CODE, TREE_TYPE, VREL_EQ, and VREL_VARYING.
Referenced by compute_operand1_and_operand2_range(), and compute_operand_range().
|
private |
References gimple_range_op_handler::calc_op2(), vrange::dump(), Value_Range::dump(), dump_file, fputc(), fur_source::get_operand(), ggc_alloc(), gimple_get_lhs(), gimple_range_ssa_p(), range_tracer::header(), relation_trio::lhs_op1(), relation_trio::lhs_op2(), relation_trio::op1_op2(), op1_range(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), range_tracer::print(), print_generic_expr(), print_gimple_stmt(), r, refine_using_relation(), gimple_range_op_handler::stmt(), TDF_SLIM, tracer, range_tracer::trailer(), TREE_CODE, TREE_TYPE, VREL_EQ, and VREL_VARYING.
Referenced by compute_operand1_and_operand2_range(), and compute_operand_range().
bool gori_compute::compute_operand_range | ( | vrange & | r, |
gimple * | stmt, | ||
const vrange & | lhs, | ||
tree | name, | ||
class fur_source & | src, | ||
value_relation * | rel = NULL ) |
References compute_logical_operands(), compute_operand1_and_operand2_range(), compute_operand1_range(), compute_operand2_range(), compute_operand_range(), compute_operand_range_switch(), vrange::dump(), dump_file, gcc_checking_assert, ggc_alloc(), gimple_expr_code(), gimple_range_ssa_p(), range_tracer::header(), range_def_chain::in_chain_p(), is_gimple_logical_p(), gimple_range_op_handler::lhs(), logical_combine(), range_op_handler::op1_op2_relation(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), print_generic_expr(), print_gimple_stmt(), r, Value_Range::set_type(), SSA_NAME_DEF_STMT, TDF_SLIM, tracer, range_tracer::trailer(), TREE_TYPE, vrange::undefined_p(), vrange::varying_p(), and VREL_VARYING.
Referenced by assume_query::calculate_op(), compute_logical_operands(), compute_operand1_and_operand2_range(), compute_operand_range(), compute_operand_range_switch(), condexpr_adjust(), and outgoing_edge_range_p().
|
private |
References compute_operand_range(), gimple_range_ssa_p(), gimple_switch_index(), range_def_chain::in_chain_p(), r, SSA_NAME_DEF_STMT, and vrange::undefined_p().
Referenced by compute_operand_range().
bool gori_compute::condexpr_adjust | ( | vrange & | r1, |
vrange & | r2, | ||
gimple * | s, | ||
tree | cond, | ||
tree | op1, | ||
tree | op2, | ||
fur_source & | src ) |
References compute_operand_range(), dump_file, fur_source::get_operand(), ggc_alloc(), gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs_code(), gimple_range_ssa_p(), range_tracer::header(), range_def_chain::in_chain_p(), m_bool_one, m_bool_zero, range_tracer::print(), range_compatible_p(), SSA_NAME_DEF_STMT, tcc_comparison, tracer, range_tracer::trailer(), TREE_CODE, TREE_CODE_CLASS, and TREE_TYPE.
Referenced by fold_using_range::range_of_cond_expr().
References a, b, bitmap_intersect_p(), and range_def_chain::get_def_chain().
References gori_map::dump().
|
inherited |
References bitmap_bit_p, bitmap_empty_p(), EXECUTE_IF_SET_IN_BITMAP, range_def_chain::get_def_chain(), range_def_chain::get_imports(), ggc_alloc(), gimple_bb(), range_def_chain::has_def_chain(), NULL, num_ssa_names, print_generic_expr(), ssa_name, SSA_NAME_DEF_STMT, TDF_SLIM, and y.
Referenced by gori_map::dump().
|
inherited |
References gori_map::calculate_gori(), basic_block_def::index, and gori_map::m_outgoing.
Referenced by gori_map::is_export_p(), ranger_cache::ranger_cache(), and remove_unreachable::remove_and_update_globals().
References count, ggc_alloc(), gimple_bb(), gimple_range_ssa_names(), range_def_chain::has_def_chain(), range_def_chain::m_def_chain, range_def_chain::m_logical_depth, NULL, range_def_chain::register_dependency(), range_def_chain::set_import(), SSA_NAME_DEF_STMT, SSA_NAME_IS_DEFAULT_DEF, and SSA_NAME_VERSION.
Referenced by range_def_chain::add_def_chain_to_bitmap(), range_def_chain::def_chain_in_bitmap_p(), range_def_chain::dump(), range_def_chain::get_imports(), range_def_chain::in_chain_p(), and range_def_chain::register_dependency().
References range_def_chain::m_def_chain, num_ssa_names, and SSA_NAME_VERSION.
Referenced by range_def_chain::dump(), range_def_chain::get_def_chain(), and range_def_chain::get_imports().
bool gori_compute::has_edge_range_p | ( | tree | name, |
basic_block | bb = NULL ) |
References gcc_checking_assert, and has_edge_range_p().
|
inherited |
References bitmap_bit_p, gcc_checking_assert, range_def_chain::get_def_chain(), gimple_range_ssa_p(), NULL, and SSA_NAME_VERSION.
Referenced by compute_operand_range(), compute_operand_range_switch(), condexpr_adjust(), and refine_using_relation().
|
inherited |
References bitmap_bit_p, gori_map::exports(), gori_map::m_maybe_variant, and SSA_NAME_VERSION.
Referenced by has_edge_range_p(), may_recompute_p(), and outgoing_edge_range_p().
|
inherited |
References bitmap_bit_p, gori_map::imports(), and SSA_NAME_VERSION.
|
private |
References vrange::dump(), dump_file, fputc(), gcc_unreachable, ggc_alloc(), range_tracer::header(), Value_Range::intersect(), logical_combine(), m_bool_one, m_bool_zero, NULL_TREE, range_tracer::print(), r, range_is_either_true_or_false(), tracer, range_tracer::trailer(), and irange::zero_p().
Referenced by compute_operand_range(), and logical_combine().
|
private |
References gcc_checking_assert, and may_recompute_p().
Referenced by has_edge_range_p(), may_recompute_p(), may_recompute_p(), and outgoing_edge_range_p().
|
privateinherited |
bool gori_compute::outgoing_edge_range_p | ( | vrange & | r, |
edge | e, | ||
tree | name, | ||
range_query & | q ) |
References compute_operand_range(), dump_file, dump_flags, gimple_outgoing_range::edge_range_p(), fold_range(), gcc_checking_assert, ggc_alloc(), gimple_range_ssa_p(), range_tracer::header(), gori_map::is_export_p(), m_not_executable_flag, may_recompute_p(), outgoing, print_generic_expr(), print_gimple_stmt(), r, range_cast(), range_compatible_p(), SSA_NAME_DEF_STMT, TDF_DETAILS, TDF_SLIM, tracer, range_tracer::trailer(), and TREE_TYPE.
Referenced by ranger_cache::edge_range(), evaluate_control_stmt_using_entry_checks(), and ranger_cache::range_from_dom().
|
private |
References gcc_checking_assert, fur_source::get_operand(), ggc_alloc(), range_def_chain::in_chain_p(), vrange::intersect(), relation_trio::lhs_op1(), relation_trio::lhs_op2(), relation_swap(), SSA_NAME_DEF_STMT, TREE_CODE, TREE_TYPE, VREL_EQ, VREL_UNDEFINED, and VREL_VARYING.
Referenced by compute_operand1_range(), and compute_operand2_range().
|
inherited |
References b, BITMAP_ALLOC, bitmap_ior_into(), bitmap_set_bit, range_def_chain::rdc::bm, range_def_chain::get_def_chain(), range_def_chain::get_imports(), ggc_alloc(), gimple_bb(), gimple_range_ssa_p(), range_def_chain::m_bitmaps, range_def_chain::m_def_chain, NULL, NULL_TREE, num_ssa_names, range_def_chain::set_import(), range_def_chain::rdc::ssa1, range_def_chain::rdc::ssa2, SSA_NAME_DEF_STMT, and SSA_NAME_VERSION.
Referenced by range_def_chain::get_def_chain(), fold_using_range::range_of_address(), fold_using_range::range_of_phi(), and fold_using_range::range_of_range_op().
References b, BITMAP_ALLOC, bitmap_ior_into(), bitmap_set_bit, ggc_alloc(), range_def_chain::m_bitmaps, NULL_TREE, and SSA_NAME_VERSION.
Referenced by range_def_chain::get_def_chain(), and range_def_chain::register_dependency().
References bitmap_clear_bit(), bitmap_set_bit, gori_map::m_maybe_variant, and SSA_NAME_VERSION.
Referenced by ranger_cache::register_inferred_value(), and ranger_cache::set_global_range().
|
protectedinherited |
|
private |
Referenced by compute_logical_operands(), condexpr_adjust(), gori_compute(), and logical_combine().
|
private |
Referenced by compute_logical_operands(), condexpr_adjust(), gori_compute(), and logical_combine().
|
privateinherited |
Referenced by range_def_chain::get_def_chain(), and range_def_chain::range_def_chain().
|
privateinherited |
Referenced by gori_map::calculate_gori(), gori_map::gori_map(), gori_map::is_export_p(), and gori_map::set_range_invariant().
|
private |
Referenced by gori_compute(), and outgoing_edge_range_p().
|
private |
Referenced by outgoing_edge_range_p().
|
private |