|
GCC Middle and Back End API Reference
|
#include <gimple-range.h>


Protected Member Functions | |
| void | range_in_bb (vrange &r, basic_block bb, tree name) |
| DISABLE_COPY_AND_ASSIGN (dom_ranger) | |
| bool | get_tree_range (vrange &v, tree expr, gimple *stmt, basic_block bbentry=NULL, basic_block bbexit=NULL, edge e=NULL) |
| bool | invoke_range_of_expr (vrange &v, tree expr, gimple *stmt, basic_block bbentry, basic_block bbexit, edge e) |
| bool | get_arith_expr_range (vrange &r, tree expr, gimple *stmt) |
| void | share_query (range_query &q) |
Protected Attributes | |
| bitmap_obstack | m_bitmaps |
| ssa_cache | m_global |
| vec< ssa_lazy_cache * > | m_freelist |
| vec< ssa_lazy_cache * > | m_bb |
| range_tracer | tracer |
| relation_oracle * | m_relation |
| infer_range_oracle * | m_infer |
| gimple_outgoing_range * | m_gori |
| gori_map * | m_map |
| bool | m_shared_copy_p |
| dom_ranger::dom_ranger | ( | ) |
References bitmap_obstack_initialize(), cfun, dump_file, range_tracer::enable_trace(), last_basic_block_for_fn, m_bb, m_bitmaps, m_freelist, m_global, RANGER_DEBUG_TRACE, and tracer.
Referenced by DISABLE_COPY_AND_ASSIGN().
| dom_ranger::~dom_ranger | ( | ) |
References bitmap_obstack_release(), ssa_cache::dump(), dump_file, dump_flags, m_bb, m_bitmaps, m_freelist, m_global, and TDF_DETAILS.
|
inlinevirtualinherited |
Reimplemented in path_range_query.
Referenced by set_range_query().
|
inherited |
References default_gori, gcc_checking_assert, gori_compute::gori_compute(), gori_map::gori_map(), m_gori, m_map, and NULL.
Referenced by ranger_cache::ranger_cache().
|
inherited |
References default_infer_oracle, gcc_checking_assert, infer_range_manager::infer_range_manager(), m_infer, and range_query().
Referenced by ranger_cache::ranger_cache().
References CDI_DOMINATORS, default_relation_oracle, dom_info_available_p(), dom_oracle::dom_oracle(), gcc_checking_assert, global_ranges, and m_relation.
Referenced by execute_fast_vrp(), and ranger_cache::ranger_cache().
|
inherited |
References default_gori, m_gori, m_map, and NULL.
Referenced by ~range_query().
|
inherited |
References default_infer_oracle, and m_infer.
Referenced by ~range_query(), and ranger_cache::~ranger_cache().
|
inherited |
References default_relation_oracle, and m_relation.
Referenced by ~range_query(), and ranger_cache::~ranger_cache().
|
protected |
References dom_ranger().
|
virtualinherited |
Reimplemented in gimple_ranger, path_range_query, ranger_cache, and ssa_cache.
References r.
|
protectedinherited |
References wi::add(), as_a(), BINARY_CLASS_P, poly_int< N, C >::coeffs, COMPARISON_CLASS_P, drop_tree_overflow(), wi::eq_p(), range_op_handler::fold_range(), gcc_assert, gcc_checking_assert, get_nonzero_bits(), gimple_range_global(), gimple_range_ssa_p(), HOST_WIDE_INT_M1U, i, invoke_range_of_expr(), is_a< prange >(), wi::le_p(), wi::mul(), wi::neg_p(), NUM_POLY_INT_COEFFS, wi::OVF_NONE, POLY_INT_CST_P, r, real_isnan(), real_isneg(), REAL_VALUE_TYPE, frange::set(), irange::set(), frange::set_nan(), prange::set_pt(), value_range::set_varying(), value_range::supports_type_p(), targetm, wi::to_poly_wide(), wi::to_wide(), TREE_CODE, TREE_OPERAND, TREE_OVERFLOW_P, TREE_REAL_CST_PTR, tree_single_nonzero_p(), TREE_TYPE, TYPE_MAX_VALUE, TYPE_MIN_VALUE, TYPE_OVERFLOW_WRAPS, TYPE_P, TYPE_PRECISION, TYPE_SIGN, wi::uhwi(), UNARY_CLASS_P, irange::update_bitmask(), and wi::zero().
Referenced by dom_ranger::range_of_expr(), gimple_ranger::range_of_expr(), global_range_query::range_of_expr(), ranger_cache::range_of_expr(), ssa_cache::range_of_expr(), dom_ranger::range_of_stmt(), gimple_ranger::range_of_stmt(), dom_ranger::range_on_edge(), gimple_ranger::range_on_edge(), ranger_cache::range_on_edge(), gimple_ranger::range_on_entry(), and gimple_ranger::range_on_exit().
|
inlineinherited |
References m_gori.
Referenced by ranger_cache::block_range(), path_range_query::compute_ranges_in_block(), gimple_ranger::dump_bb(), ranger_cache::edge_range(), ranger_cache::entry_range(), evaluate_control_stmt_using_entry_checks(), ranger_cache::fill_block_cache(), fur_source::gori(), gori_on_edge(), ranger_cache::range_from_dom(), dom_oracle::recomputed_relation(), and ranger_cache::register_inferred_value().
|
inlineinherited |
References m_map.
Referenced by hybrid_jt_simplifier::compute_exit_dependencies(), path_range_query::compute_exit_dependencies(), path_range_query::compute_ranges_in_block(), ranger_cache::dump_bb(), ranger_cache::get_global_range(), fur_source::gori_ssa(), remove_unreachable::handle_early(), gimple_ranger::range_of_stmt(), ranger_cache::ranger_cache(), dom_oracle::recomputed_relation(), ranger_cache::register_inferred_value(), gimple_ranger::register_transitive_inferred_ranges(), remove_unreachable::remove_and_update_globals(), reset_range_info(), and ranger_cache::set_global_range().
|
inlineinherited |
References m_infer.
Referenced by path_range_query::adjust_for_non_null_uses(), ranger_cache::apply_inferred_ranges(), path_range_query::compute_ranges(), ranger_cache::edge_range(), ranger_cache::fill_block_cache(), path_range_query::range_defined_in_block(), ranger_cache::range_from_dom(), gimple_ranger::range_on_edge(), gimple_ranger::register_transitive_inferred_ranges(), and reset_range_info().
|
protectedinherited |
References gcc_checking_assert, r, range_of_expr(), range_on_edge(), range_on_entry(), and range_on_exit().
Referenced by get_tree_range().
| void dom_ranger::post_bb | ( | basic_block | bb | ) |
References dump_file, dump_flags, basic_block_def::index, m_bb, m_freelist, NULL, and TDF_DETAILS.
Referenced by fvrp_folder::post_fold_bb().
| void dom_ranger::pre_bb | ( | basic_block | bb | ) |
References CDI_DOMINATORS, ssa_cache::dump(), dump_file, dump_flags, EDGE_PRED, ssa_lazy_cache::empty_p(), gcc_checking_assert, get_immediate_dominator(), gori_on_edge(), basic_block_def::index, m_bb, m_bitmaps, m_freelist, ssa_lazy_cache::merge(), NULL, single_pred_p(), ssa_lazy_cache::ssa_lazy_cache(), and TDF_DETAILS.
Referenced by fvrp_folder::pre_fold_bb().
|
protected |
References ssa_lazy_cache::get_range(), ssa_lazy_cache::has_range(), basic_block_def::index, m_bb, m_global, r, ssa_cache::range_of_expr(), and TREE_TYPE.
Referenced by range_of_expr(), and range_on_edge().
Implements range_query.
References dbg_cnt(), dump_file, get_global_range_query(), range_query::get_tree_range(), gimple_bb(), gimple_range_ssa_p(), range_tracer::header(), m_global, print_generic_expr(), print_gimple_stmt(), r, range_in_bb(), range_query::range_of_expr(), ssa_cache::range_of_expr(), TDF_SLIM, tracer, and range_tracer::trailer().
Reimplemented from range_query.
References dbg_cnt(), dump_file, fold_using_range::fold_stmt(), get_global_range_query(), range_query::get_tree_range(), gimple_get_lhs(), gimple_range_ssa_p(), ssa_cache::has_range(), range_tracer::header(), m_global, ssa_cache::merge_range(), NULL, print_gimple_stmt(), r, ssa_cache::range_of_expr(), range_query::range_of_stmt(), set_range_info(), TDF_SLIM, tracer, and range_tracer::trailer().
Referenced by fvrp_folder::pre_fold_bb(), and fvrp_folder::pre_fold_stmt().
Reimplemented from range_query.
References dbg_cnt(), dump_file, fputc(), get_global_range_query(), range_query::get_tree_range(), gimple_range_ssa_p(), gori_name_on_edge(), range_tracer::header(), NULL, print_generic_expr(), r, range_in_bb(), range_query::range_on_edge(), TDF_SLIM, tracer, range_tracer::trailer(), and TREE_TYPE.
|
virtualinherited |
Reimplemented in gimple_ranger.
References r, and range_of_expr().
Referenced by remove_unreachable::handle_early(), invoke_range_of_expr(), range_of_expr(), gimple_ranger::range_on_entry(), dom_oracle::recomputed_relation(), remove_unreachable::remove_and_update_globals(), and value_on_entry().
|
virtualinherited |
Reimplemented in gimple_ranger.
References r, and range_of_expr().
Referenced by invoke_range_of_expr(), range_of_expr(), gimple_ranger::range_on_exit(), and value_on_exit().
|
inlineinherited |
References m_relation.
Referenced by check_for_binary_op_overflow(), path_range_query::compute_ranges(), simplify_using_ranges::fold_cond_with_ops(), path_range_query::path_range_query(), path_range_query::path_range_query(), fur_stmt::query_relation(), jt_fur_source::query_relation(), fur_depend::register_relation(), fur_depend::register_relation(), jt_fur_source::register_relation(), jt_fur_source::register_relation(), and reset_range_info().
|
virtualinherited |
Reimplemented in gimple_ranger, and ranger_cache.
References infer_range_oracle::clear(), range_def_chain::clear(), relation_oracle::clear(), gori_ssa(), infer_oracle(), and relation().
Referenced by range_of_expr(), reset_flow_sensitive_info(), and ranger_cache::reset_range_info().
|
protectedinherited |
References m_gori, m_infer, m_map, m_relation, m_shared_copy_p, and range_query().
Referenced by gimple_ranger::gimple_ranger(), path_range_query::path_range_query(), and path_range_query::path_range_query().
|
virtualinherited |
Reimplemented in gimple_ranger.
Referenced by infer_range_manager::add_range(), gimple_set_modified(), phi_analyzer::process_phi(), range_of_expr(), and set_range_info().
Reimplemented in gimple_ranger.
Reimplemented in ccp_folder, copy_folder, fvrp_folder, rvrp_folder, and substitute_and_fold_engine.
References NULL_TREE, r, range_of_expr(), value_range::supports_type_p(), and TREE_TYPE.
Referenced by fvrp_folder::value_of_expr().
Reimplemented in fvrp_folder, rvrp_folder, and substitute_and_fold_engine.
References gcc_checking_assert, gimple_get_lhs(), NULL_TREE, r, range_of_stmt(), value_range::supports_type_p(), and TREE_TYPE.
Referenced by fvrp_folder::value_of_stmt(), and rvrp_folder::value_of_stmt().
Reimplemented in fvrp_folder, rvrp_folder, and substitute_and_fold_engine.
References NULL_TREE, r, range_of_expr(), range_on_edge(), value_range::supports_type_p(), and TREE_TYPE.
Referenced by fvrp_folder::value_on_edge().
|
virtualinherited |
References gcc_checking_assert, NULL_TREE, r, range_on_entry(), value_range::supports_type_p(), and TREE_TYPE.
|
virtualinherited |
References gcc_checking_assert, NULL_TREE, r, range_on_exit(), value_range::supports_type_p(), and TREE_TYPE.
|
protected |
Referenced by dom_ranger(), post_bb(), pre_bb(), range_in_bb(), and ~dom_ranger().
|
protected |
Referenced by dom_ranger(), pre_bb(), and ~dom_ranger().
|
protected |
Referenced by dom_ranger(), post_bb(), pre_bb(), and ~dom_ranger().
|
protected |
Referenced by dom_ranger(), range_in_bb(), range_of_expr(), range_of_stmt(), and ~dom_ranger().
|
protectedinherited |
Referenced by create_gori(), destroy_gori(), gori(), range_query(), and share_query().
|
protectedinherited |
Referenced by create_infer_oracle(), destroy_infer_oracle(), infer_oracle(), range_query(), and share_query().
|
protectedinherited |
Referenced by create_gori(), destroy_gori(), gori_ssa(), range_query(), and share_query().
|
protectedinherited |
Referenced by create_relation_oracle(), destroy_relation_oracle(), ranger_cache::dump_bb(), ranger_cache::fill_block_cache(), path_range_query::get_path_oracle(), path_range_query::maybe_register_phi_relation(), path_range_query::path_range_query(), path_range_query::path_range_query(), range_query(), relation(), share_query(), and path_range_query::~path_range_query().
|
protectedinherited |
Referenced by range_query(), share_query(), and ~range_query().
|
protected |
Referenced by dom_ranger(), range_of_expr(), range_of_stmt(), and range_on_edge().