#include <value-relation.h>
|
| dom_oracle () |
|
| ~dom_oracle () |
|
void | register_relation (basic_block bb, relation_kind k, tree op1, tree op2) final override |
|
relation_kind | query_relation (basic_block bb, tree ssa1, tree ssa2) final override |
|
relation_kind | query_relation (basic_block bb, const_bitmap b1, const_bitmap b2) final override |
|
void | dump (FILE *f, basic_block bb) const final override |
|
void | dump (FILE *f) const final override |
|
const_bitmap | equiv_set (tree ssa, basic_block bb) final override |
|
const pe_slice * | partial_equiv_set (tree name) final override |
|
void | add_partial_equiv (relation_kind, tree, tree) |
|
relation_kind | partial_equiv (tree ssa1, tree ssa2, tree *base=NULL) const |
|
void | register_stmt (gimple *, relation_kind, tree, tree) |
|
void | register_edge (edge, relation_kind, tree, tree) |
|
relation_kind | validate_relation (relation_kind, tree, tree) |
|
relation_kind | validate_relation (relation_kind, vrange &, vrange &) |
|
void | debug () const |
|
|
relation_kind | find_relation_block (unsigned bb, const_bitmap b1, const_bitmap b2) const |
|
relation_kind | find_relation_block (int bb, unsigned v1, unsigned v2, relation_chain **obj=NULL) const |
|
relation_kind | find_relation_dom (basic_block bb, unsigned v1, unsigned v2) const |
|
relation_chain * | set_one_relation (basic_block bb, relation_kind k, tree op1, tree op2) |
|
void | register_transitives (basic_block, const class value_relation &) |
|
void | limit_check (basic_block bb=NULL) |
|
equiv_chain * | find_equiv_block (unsigned ssa, int bb) const |
|
equiv_chain * | find_equiv_dom (tree name, basic_block bb) const |
|
bitmap | register_equiv (basic_block bb, unsigned v, equiv_chain *equiv_1) |
|
bitmap | register_equiv (basic_block bb, equiv_chain *equiv_1, equiv_chain *equiv_2) |
|
void | register_initial_def (tree ssa) |
|
void | add_equiv_to_block (basic_block bb, bitmap equiv) |
|
◆ dom_oracle()
dom_oracle::dom_oracle |
( |
| ) |
|
◆ ~dom_oracle()
dom_oracle::~dom_oracle |
( |
| ) |
|
◆ add_equiv_to_block()
References BITMAP_ALLOC, bitmap_copy(), bitmap_ior_into(), equiv_oracle::equiv_set(), gcc_checking_assert, ggc_alloc(), basic_block_def::index, equiv_oracle::limit_check(), equiv_chain::m_bb, equiv_oracle::m_bitmaps, equiv_oracle::m_chain_obstack, equiv_oracle::m_equiv, equiv_chain::m_names, equiv_chain::m_next, and NULL.
Referenced by equiv_oracle::register_initial_def(), and equiv_oracle::register_relation().
◆ add_partial_equiv()
References BITMAP_ALLOC, bitmap_set_bit, bits_to_pe(), EXECUTE_IF_SET_IN_BITMAP, gcc_checking_assert, ggc_alloc(), has_zero_uses(), equiv_oracle::m_bitmaps, equiv_oracle::m_partial, num_ssa_names, pe_min(), pe_to_bits(), r, SSA_NAME_VERSION, TREE_TYPE, TYPE_PRECISION, and VREL_VARYING.
Referenced by equiv_oracle::register_relation().
◆ debug()
void relation_oracle::debug |
( |
| ) |
const |
|
inherited |
◆ dump() [1/2]
◆ dump() [2/2]
◆ equiv_set()
|
finaloverridevirtualinherited |
Implements relation_oracle.
References BITMAP_ALLOC, bitmap_set_bit, equiv_oracle::find_equiv_dom(), ggc_alloc(), equiv_oracle::m_bitmaps, equiv_oracle::m_self_equiv, num_ssa_names, and SSA_NAME_VERSION.
Referenced by equiv_oracle::add_equiv_to_block(), query_relation(), equiv_oracle::query_relation(), equiv_oracle::register_initial_def(), equiv_oracle::register_relation(), and register_transitives().
◆ find_equiv_block()
◆ find_equiv_dom()
◆ find_relation_block() [1/2]
◆ find_relation_block() [2/2]
◆ find_relation_dom()
◆ has_equiv_p()
◆ limit_check()
◆ partial_equiv()
◆ partial_equiv_set()
|
finaloverridevirtualinherited |
◆ query_relation() [1/2]
Implements relation_oracle.
References bitmap_equal_p(), bitmap_intersect_p(), CDI_DOMINATORS, find_relation_block(), get_immediate_dominator(), ggc_alloc(), basic_block_def::index, m_relation_set, r, VREL_EQ, and VREL_VARYING.
◆ query_relation() [2/2]
Implements relation_oracle.
References bitmap_bit_p, equiv_oracle::equiv_set(), find_relation_dom(), ggc_alloc(), equiv_oracle::has_equiv_p(), m_relation_set, equiv_oracle::partial_equiv(), query_relation(), SSA_NAME_VERSION, VREL_EQ, and VREL_VARYING.
Referenced by query_relation().
◆ register_edge()
◆ register_equiv() [1/2]
◆ register_equiv() [2/2]
◆ register_initial_def()
void equiv_oracle::register_initial_def |
( |
tree | ssa | ) |
|
|
privateinherited |
References equiv_oracle::add_equiv_to_block(), BITMAP_ALLOC, bitmap_set_bit, equiv_oracle::equiv_set(), equiv_oracle::find_equiv_dom(), gcc_checking_assert, gimple_bb(), equiv_oracle::m_bitmaps, equiv_oracle::m_equiv_set, SSA_NAME_DEF_STMT, SSA_NAME_IS_DEFAULT_DEF, and SSA_NAME_VERSION.
Referenced by equiv_oracle::register_relation().
◆ register_relation()
◆ register_stmt()
References value_relation::dump(), dump_file, dump_flags, gcc_checking_assert, ggc_alloc(), gimple_bb(), gimple_phi_result(), print_generic_expr(), print_gimple_stmt(), relation_oracle::register_relation(), SSA_NAME_DEF_STMT, TDF_DETAILS, TDF_SLIM, TREE_CODE, VREL_EQ, and VREL_VARYING.
Referenced by fur_depend::register_relation().
◆ register_transitives()
References bitmap_bit_p, bitmap_intersect_p(), CDI_DOMINATORS, dump_file, dump_flags, equiv_oracle::equiv_set(), fputc(), get_immediate_dominator(), ggc_alloc(), basic_block_def::index, relation_chain::m_next, m_relations, nr, NULL_TREE, value_relation::op1(), value_relation::op2(), set_one_relation(), SSA_NAME_VERSION, TDF_DETAILS, VREL_GE, VREL_GT, VREL_LE, and VREL_LT.
Referenced by register_relation().
◆ set_one_relation()
References BITMAP_ALLOC, bitmap_set_bit, cfun, value_relation::dump(), dump_file, dump_flags, find_relation_block(), find_relation_dom(), gcc_checking_assert, ggc_alloc(), basic_block_def::index, value_relation::intersect(), last_basic_block_for_fn, equiv_oracle::m_bitmaps, equiv_oracle::m_chain_obstack, relation_chain::m_next, m_relation_set, m_relations, NULL, relation_intersect(), value_relation::set_relation(), SSA_NAME_VERSION, TDF_DETAILS, VREL_EQ, and VREL_VARYING.
Referenced by register_relation(), and register_transitives().
◆ valid_equivs()
◆ validate_relation() [1/2]
◆ validate_relation() [2/2]
References boolean_type_node, range_op_handler::fold_range(), ggc_alloc(), relation_trio::op1_op2(), range_compatible_p(), relation_to_code, vrange::type(), vrange::undefined_p(), Value_Range::varying_p(), VREL_VARYING, and Value_Range::zero_p().
◆ m_bitmaps
Referenced by equiv_oracle::add_equiv_to_block(), equiv_oracle::add_partial_equiv(), dom_oracle(), equiv_oracle::equiv_oracle(), equiv_oracle::equiv_set(), equiv_oracle::register_equiv(), equiv_oracle::register_equiv(), equiv_oracle::register_initial_def(), equiv_oracle::register_relation(), set_one_relation(), and equiv_oracle::~equiv_oracle().
◆ m_chain_obstack
◆ m_equiv
◆ m_equiv_set
bitmap equiv_oracle::m_equiv_set |
|
privateinherited |
◆ m_partial
◆ m_relation_set
bitmap dom_oracle::m_relation_set |
|
private |
◆ m_relations
◆ m_self_equiv
◆ m_tmp
◆ m_tmp2
The documentation for this class was generated from the following files: