#include <value-relation.h>
|
| dom_oracle (bool do_trans_p=true) |
|
| ~dom_oracle () |
|
void | record (basic_block bb, relation_kind k, tree op1, tree op2) final override |
|
relation_kind | query (basic_block bb, tree ssa1, tree ssa2) final override |
|
relation_kind | query (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 |
|
void | record (gimple *, relation_kind, tree, tree) |
|
void | record (edge, relation_kind, tree, tree) |
|
relation_kind | partial_equiv (tree ssa1, tree ssa2, tree *base=NULL) const |
|
relation_kind | query (gimple *s, tree ssa1, tree ssa2) |
|
relation_kind | query (edge e, tree ssa1, tree ssa2) |
|
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 |
( |
bool | do_trans_p = true | ) |
|
◆ ~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, 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::record(), and equiv_oracle::register_initial_def().
◆ add_partial_equiv()
References BITMAP_ALLOC, bitmap_set_bit, bits_to_pe(), pe_slice::code, EXECUTE_IF_SET_IN_BITMAP, gcc_checking_assert, has_zero_uses(), equiv_oracle::m_bitmaps, equiv_oracle::m_partial, pe_slice::members, num_ssa_names, pe_min(), pe_to_bits(), r, pe_slice::ssa_base, SSA_NAME_VERSION, TREE_TYPE, TYPE_PRECISION, and VREL_VARYING.
Referenced by equiv_oracle::record().
◆ debug()
void relation_oracle::debug |
( |
| ) |
const |
|
inherited |
◆ dump() [1/2]
void dom_oracle::dump |
( |
FILE * | f | ) |
const |
|
finaloverridevirtual |
◆ dump() [2/2]
void dom_oracle::dump |
( |
FILE * | f, |
|
|
basic_block | bb ) const |
|
finaloverridevirtual |
◆ equiv_set()
|
finaloverridevirtualinherited |
Reimplemented from relation_oracle.
References BITMAP_ALLOC, bitmap_set_bit, equiv_oracle::find_equiv_dom(), equiv_oracle::m_bitmaps, equiv_chain::m_names, equiv_oracle::m_self_equiv, num_ssa_names, and SSA_NAME_VERSION.
Referenced by equiv_oracle::add_equiv_to_block(), query(), equiv_oracle::query(), equiv_oracle::record(), equiv_oracle::register_initial_def(), and register_transitives().
◆ find_equiv_block()
equiv_chain * equiv_oracle::find_equiv_block |
( |
unsigned | ssa, |
|
|
int | bb ) const |
|
privateinherited |
◆ find_equiv_dom()
◆ find_relation_block() [1/2]
◆ find_relation_block() [2/2]
◆ find_relation_dom()
◆ has_equiv_p()
bool equiv_oracle::has_equiv_p |
( |
unsigned | v | ) |
|
|
inlineprotectedinherited |
◆ limit_check()
◆ partial_equiv()
◆ partial_equiv_set()
const pe_slice * equiv_oracle::partial_equiv_set |
( |
tree | name | ) |
|
|
finaloverrideprotectedvirtualinherited |
◆ query() [1/4]
◆ query() [2/4]
◆ query() [3/4]
◆ query() [4/4]
◆ record() [1/3]
◆ record() [2/3]
◆ record() [3/3]
References value_relation::dump(), dump_file, dump_flags, gcc_checking_assert, gimple_bb(), gimple_phi_result(), is_a(), print_generic_expr(), print_gimple_stmt(), relation_oracle::record(), SSA_NAME_DEF_STMT, TDF_DETAILS, TDF_SLIM, TREE_CODE, VREL_EQ, and VREL_VARYING.
Referenced by path_range_query::maybe_register_phi_relation(), relation_oracle::record(), relation_oracle::record(), fur_depend::register_relation(), fur_depend::register_relation(), jt_fur_source::register_relation(), and jt_fur_source::register_relation().
◆ register_equiv() [1/2]
References b, BITMAP_ALLOC, bitmap_clear(), bitmap_ior_into(), basic_block_def::index, equiv_chain::m_bb, equiv_oracle::m_bitmaps, equiv_oracle::m_equiv, equiv_chain::m_names, NULL, and relation_oracle::valid_equivs().
◆ register_equiv() [2/2]
References b, BITMAP_ALLOC, bitmap_set_bit, basic_block_def::index, equiv_chain::m_bb, equiv_oracle::m_bitmaps, equiv_oracle::m_equiv, equiv_oracle::m_equiv_set, equiv_chain::m_names, NULL, and relation_oracle::valid_equivs().
Referenced by equiv_oracle::record().
◆ 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::record().
◆ register_transitives()
References bitmap_bit_p, bitmap_intersect_p(), CDI_DOMINATORS, dump_file, dump_flags, equiv_oracle::equiv_set(), fputc(), get_immediate_dominator(), basic_block_def::index, value_relation::kind(), m_do_trans_p, 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 record().
◆ 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, 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 record(), and register_transitives().
◆ valid_equivs()
◆ 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::record(), equiv_oracle::register_equiv(), equiv_oracle::register_equiv(), equiv_oracle::register_initial_def(), set_one_relation(), and equiv_oracle::~equiv_oracle().
◆ m_chain_obstack
struct obstack equiv_oracle::m_chain_obstack |
|
protectedinherited |
◆ m_do_trans_p
bool dom_oracle::m_do_trans_p |
|
private |
◆ 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: