GCC Middle and Back End API Reference
|
#include <gimple-range-infer.h>
Data Structures | |
class | exit_range_head |
Public Member Functions | |
infer_range_manager (bool do_search) | |
~infer_range_manager () | |
void | add_range (tree name, basic_block bb, const vrange &r) |
void | add_nonzero (tree name, basic_block bb) |
bool | has_range_p (tree name, basic_block bb) |
bool | has_range_p (basic_block bb) |
bool | maybe_adjust_range (vrange &r, tree name, basic_block bb) |
Private Member Functions | |
void | register_all_uses (tree name) |
const vrange & | get_nonzero (tree name) |
Private Attributes | |
vec< exit_range_head > | m_on_exit |
vec< vrange * > | m_nonzero |
bitmap | m_seen |
bitmap_obstack | m_bitmaps |
struct obstack | m_list_obstack |
class vrange_allocator * | m_range_allocator |
infer_range_manager::infer_range_manager | ( | bool | do_search | ) |
References BITMAP_ALLOC, bitmap_obstack_initialize(), cfun, ggc_alloc(), last_basic_block_for_fn, m_bitmaps, m_list_obstack, m_nonzero, m_on_exit, m_range_allocator, m_seen, NULL, and num_ssa_names.
infer_range_manager::~infer_range_manager | ( | ) |
References bitmap_obstack_release(), ggc_alloc(), m_bitmaps, m_list_obstack, m_nonzero, m_on_exit, m_range_allocator, and NULL.
void infer_range_manager::add_nonzero | ( | tree | name, |
basic_block | bb ) |
References add_range(), and get_nonzero().
void infer_range_manager::add_range | ( | tree | name, |
basic_block | bb, | ||
const vrange & | r ) |
References BITMAP_ALLOC, bitmap_set_bit, cfun, vrange_allocator::clone(), dump_file, dump_flags, vrange_storage::fits_p(), vrange_storage::get_vrange(), ggc_alloc(), basic_block_def::index, last_basic_block_for_fn, m_bitmaps, m_list_obstack, m_on_exit, m_range_allocator, exit_range::name, exit_range::next, print_generic_expr(), r, exit_range::range, vrange_storage::set_vrange(), SSA_NAME_VERSION, TDF_DETAILS, TDF_SLIM, and TREE_TYPE.
Referenced by add_nonzero(), ranger_cache::apply_inferred_ranges(), and register_all_uses().
References vrange_allocator::alloc(), ggc_alloc(), m_nonzero, m_range_allocator, num_ssa_names, SSA_NAME_VERSION, and TREE_TYPE.
Referenced by add_nonzero().
bool infer_range_manager::has_range_p | ( | basic_block | bb | ) |
References b, bitmap_empty_p(), basic_block_def::index, and m_on_exit.
bool infer_range_manager::has_range_p | ( | tree | name, |
basic_block | bb ) |
References bitmap_bit_p, basic_block_def::index, m_on_exit, m_seen, register_all_uses(), and SSA_NAME_VERSION.
Referenced by ranger_cache::fill_block_cache(), and maybe_adjust_range().
bool infer_range_manager::maybe_adjust_range | ( | vrange & | r, |
tree | name, | ||
basic_block | bb ) |
References gcc_checking_assert, vrange_storage::get_vrange(), ggc_alloc(), has_range_p(), basic_block_def::index, m_on_exit, r, exit_range::range, and TREE_TYPE.
Referenced by path_range_query::adjust_for_non_null_uses(), ranger_cache::edge_range(), path_range_query::range_defined_in_block(), ranger_cache::range_from_dom(), and gimple_ranger::range_on_edge().
References add_range(), bitmap_bit_p, bitmap_set_bit, FOR_EACH_IMM_USE_FAST, gcc_checking_assert, ggc_alloc(), gimple_bb(), m_seen, SSA_NAME_VERSION, and USE_STMT.
Referenced by has_range_p().
|
private |
Referenced by add_range(), infer_range_manager(), and ~infer_range_manager().
Referenced by add_range(), infer_range_manager(), and ~infer_range_manager().
Referenced by get_nonzero(), infer_range_manager(), and ~infer_range_manager().
|
private |
Referenced by add_range(), has_range_p(), has_range_p(), infer_range_manager(), maybe_adjust_range(), and ~infer_range_manager().
|
private |
Referenced by add_range(), get_nonzero(), infer_range_manager(), and ~infer_range_manager().
|
private |
Referenced by has_range_p(), infer_range_manager(), and register_all_uses().