#include <value-relation.h>
|
| equiv_oracle () |
|
| ~equiv_oracle () |
|
const_bitmap | equiv_set (tree ssa, basic_block bb) final override |
|
void | record (basic_block bb, relation_kind k, tree ssa1, tree ssa2) override |
|
relation_kind | partial_equiv (tree ssa1, tree ssa2, tree *base=NULL) const |
|
relation_kind | query (basic_block, tree, tree) override |
|
relation_kind | query (basic_block, const_bitmap, const_bitmap) override |
|
void | dump (FILE *f, basic_block bb) const override |
|
void | dump (FILE *f) const override |
|
void | record (gimple *, relation_kind, tree, tree) |
|
void | record (edge, relation_kind, tree, tree) |
|
relation_kind | query (gimple *s, tree ssa1, tree ssa2) |
|
relation_kind | query (edge e, tree ssa1, tree ssa2) |
|
void | debug () const |
|
◆ equiv_oracle()
equiv_oracle::equiv_oracle |
( |
| ) |
|
References BITMAP_ALLOC, bitmap_obstack_initialize(), bitmap_tree_view(), cfun, last_basic_block_for_fn, m_bitmaps, m_chain_obstack, m_equiv, m_equiv_set, m_partial, m_self_equiv, and num_ssa_names.
◆ ~equiv_oracle()
equiv_oracle::~equiv_oracle |
( |
| ) |
|
◆ add_equiv_to_block()
References BITMAP_ALLOC, bitmap_copy(), bitmap_ior_into(), equiv_set(), gcc_checking_assert, basic_block_def::index, limit_check(), equiv_chain::m_bb, m_bitmaps, m_chain_obstack, m_equiv, equiv_chain::m_names, equiv_chain::m_next, and NULL.
Referenced by record(), and 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(), m_bitmaps, 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 record().
◆ debug()
void relation_oracle::debug |
( |
| ) |
const |
|
inherited |
◆ dump() [1/2]
void equiv_oracle::dump |
( |
FILE * | f | ) |
const |
|
overridevirtual |
◆ dump() [2/2]
void equiv_oracle::dump |
( |
FILE * | f, |
|
|
basic_block | bb ) const |
|
overridevirtual |
Reimplemented from relation_oracle.
References equiv_chain::dump(), value_relation::dump(), fputc(), gimple_bb(), gimple_range_ssa_p(), i, basic_block_def::index, m_equiv, equiv_chain::m_next, m_partial, num_ssa_names, partial_equiv(), ssa_name, SSA_NAME_DEF_STMT, and VREL_VARYING.
Referenced by dom_oracle::dump(), and dump().
◆ equiv_set()
Reimplemented from relation_oracle.
References BITMAP_ALLOC, bitmap_set_bit, find_equiv_dom(), m_bitmaps, equiv_chain::m_names, m_self_equiv, num_ssa_names, and SSA_NAME_VERSION.
Referenced by add_equiv_to_block(), dom_oracle::query(), query(), record(), register_initial_def(), and dom_oracle::register_transitives().
◆ find_equiv_block()
equiv_chain * equiv_oracle::find_equiv_block |
( |
unsigned | ssa, |
|
|
int | bb ) const |
|
private |
◆ find_equiv_dom()
◆ has_equiv_p()
bool equiv_oracle::has_equiv_p |
( |
unsigned | v | ) |
|
|
inlineprotected |
◆ limit_check()
◆ partial_equiv()
◆ partial_equiv_set()
const pe_slice * equiv_oracle::partial_equiv_set |
( |
tree | name | ) |
|
|
finaloverrideprotectedvirtual |
◆ query() [1/4]
◆ query() [2/4]
◆ query() [3/4]
◆ query() [4/4]
◆ record() [1/3]
Reimplemented from relation_oracle.
References add_equiv_to_block(), add_partial_equiv(), BITMAP_ALLOC, bitmap_bit_p, bitmap_set_bit, equiv_set(), find_equiv_dom(), m_bitmaps, m_equiv_set, register_equiv(), register_initial_def(), relation_partial_equiv_p(), SSA_NAME_VERSION, and VREL_EQ.
Referenced by dom_oracle::record().
◆ 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, m_bitmaps, 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, m_bitmaps, m_equiv, m_equiv_set, equiv_chain::m_names, NULL, and relation_oracle::valid_equivs().
Referenced by record().
◆ register_initial_def()
void equiv_oracle::register_initial_def |
( |
tree | ssa | ) |
|
|
private |
References add_equiv_to_block(), BITMAP_ALLOC, bitmap_set_bit, equiv_set(), find_equiv_dom(), gcc_checking_assert, gimple_bb(), m_bitmaps, m_equiv_set, SSA_NAME_DEF_STMT, SSA_NAME_IS_DEFAULT_DEF, and SSA_NAME_VERSION.
Referenced by record().
◆ valid_equivs()
◆ m_bitmaps
Referenced by add_equiv_to_block(), add_partial_equiv(), dom_oracle::dom_oracle(), equiv_oracle(), equiv_set(), record(), register_equiv(), register_equiv(), register_initial_def(), dom_oracle::set_one_relation(), and ~equiv_oracle().
◆ m_chain_obstack
struct obstack equiv_oracle::m_chain_obstack |
|
protected |
◆ m_equiv
◆ m_equiv_set
bitmap equiv_oracle::m_equiv_set |
|
private |
◆ m_partial
◆ m_self_equiv
The documentation for this class was generated from the following files: