GCC Middle and Back End API Reference
dom_oracle Class Reference

#include <value-relation.h>

Inheritance diagram for dom_oracle:
Collaboration diagram for dom_oracle:

Public Member Functions

 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_slicepartial_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

Protected Member Functions

bool has_equiv_p (unsigned v)
void valid_equivs (bitmap b, const_bitmap equivs, basic_block bb)

Protected Attributes

bitmap_obstack m_bitmaps
struct obstack m_chain_obstack

Private Member Functions

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_chainset_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_chainfind_equiv_block (unsigned ssa, int bb) const
equiv_chainfind_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)

Private Attributes

bitmap m_tmp
bitmap m_tmp2
bitmap m_relation_set
vec< relation_chain_headm_relations
bitmap m_equiv_set
vec< equiv_chain * > m_equiv
vec< bitmapm_self_equiv
vec< pe_slicem_partial

Constructor & Destructor Documentation

◆ dom_oracle()

◆ ~dom_oracle()

dom_oracle::~dom_oracle ( )

References m_relations.

Member Function Documentation

◆ add_equiv_to_block()

◆ add_partial_equiv()

◆ debug()

void relation_oracle::debug ( ) const

◆ dump() [1/2]

void dom_oracle::dump ( FILE * f) const

◆ dump() [2/2]

void dom_oracle::dump ( FILE * f,
basic_block bb ) const

◆ equiv_set()

◆ find_equiv_block()

equiv_chain * equiv_oracle::find_equiv_block ( unsigned ssa,
int bb ) const

◆ find_equiv_dom()

◆ find_relation_block() [1/2]

◆ find_relation_block() [2/2]

relation_kind dom_oracle::find_relation_block ( unsigned bb,
const_bitmap b1,
const_bitmap b2 ) const

◆ find_relation_dom()

◆ has_equiv_p()

bool equiv_oracle::has_equiv_p ( unsigned v)

References bitmap_bit_p, and equiv_oracle::m_equiv_set.

Referenced by query_relation().

◆ limit_check()

void equiv_oracle::limit_check ( basic_block bb = NULL)

◆ partial_equiv()

relation_kind equiv_oracle::partial_equiv ( tree ssa1,
tree ssa2,
tree * base = NULL ) const

◆ partial_equiv_set()

const pe_slice * equiv_oracle::partial_equiv_set ( tree name)

Reimplemented from relation_oracle.

References equiv_oracle::m_partial, NULL, and SSA_NAME_VERSION.

◆ query_relation() [1/2]

◆ query_relation() [2/2]

◆ register_edge()

◆ register_equiv() [1/2]

◆ register_equiv() [2/2]

◆ register_initial_def()

◆ register_relation()

◆ register_stmt()

◆ register_transitives()

◆ set_one_relation()

◆ valid_equivs()

◆ validate_relation() [1/2]

relation_kind relation_oracle::validate_relation ( relation_kind rel,
tree ssa1,
tree ssa2 )

◆ validate_relation() [2/2]

Field Documentation

◆ m_bitmaps

◆ m_chain_obstack

◆ m_equiv

◆ m_equiv_set

◆ m_partial

◆ m_relation_set

◆ m_relations

◆ m_self_equiv

vec<bitmap> equiv_oracle::m_self_equiv

◆ m_tmp

bitmap dom_oracle::m_tmp

Referenced by dom_oracle().

◆ m_tmp2

bitmap dom_oracle::m_tmp2

Referenced by dom_oracle().

The documentation for this class was generated from the following files: