GCC Middle and Back End API Reference
path_oracle Class Reference

#include <value-relation.h>

Inheritance diagram for path_oracle:
Collaboration diagram for path_oracle:

Public Member Functions

 path_oracle (relation_oracle *oracle=NULL)
 
 ~path_oracle ()
 
const_bitmap equiv_set (tree, basic_block) final override
 
void record (basic_block, relation_kind, tree, tree) final override
 
void killing_def (tree)
 
relation_kind query (basic_block, tree, tree) final override
 
relation_kind query (basic_block, const_bitmap, const_bitmap) final override
 
void reset_path (relation_oracle *oracle=NULL)
 
void set_root_oracle (relation_oracle *oracle)
 
void dump (FILE *, basic_block) const final override
 
void dump (FILE *) const final 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
 

Protected Member Functions

virtual const class pe_slicepartial_equiv_set (tree)
 
void valid_equivs (bitmap b, const_bitmap equivs, basic_block bb)
 

Private Member Functions

void register_equiv (basic_block bb, tree ssa1, tree ssa2)
 

Private Attributes

equiv_chain m_equiv
 
relation_chain_head m_relations
 
relation_oraclem_root
 
bitmap m_killed_defs
 
bitmap_obstack m_bitmaps
 
struct obstack m_chain_obstack
 

Constructor & Destructor Documentation

◆ path_oracle()

◆ ~path_oracle()

path_oracle::~path_oracle ( )

Member Function Documentation

◆ debug()

void relation_oracle::debug ( ) const
inherited

References dump().

◆ dump() [1/2]

void path_oracle::dump ( FILE * f) const
finaloverridevirtual

◆ dump() [2/2]

void path_oracle::dump ( FILE * ,
basic_block  ) const
finaloverridevirtual

Reimplemented from relation_oracle.

Referenced by path_range_query::compute_ranges().

◆ equiv_set()

const_bitmap path_oracle::equiv_set ( tree ssa,
basic_block bb )
finaloverridevirtual

◆ killing_def()

◆ partial_equiv_set()

virtual const class pe_slice * relation_oracle::partial_equiv_set ( tree )
inlineprotectedvirtualinherited

Reimplemented in equiv_oracle.

References NULL.

Referenced by equiv_relation_iterator::equiv_relation_iterator().

◆ query() [1/4]

relation_kind path_oracle::query ( basic_block bb,
const_bitmap b1,
const_bitmap b2 )
finaloverridevirtual

◆ query() [2/4]

relation_kind path_oracle::query ( basic_block bb,
tree ssa1,
tree ssa2 )
finaloverridevirtual

Reimplemented from relation_oracle.

References bitmap_bit_p, equiv_set(), query(), SSA_NAME_VERSION, and VREL_EQ.

Referenced by query(), and record().

◆ query() [3/4]

relation_kind relation_oracle::query ( edge e,
tree ssa1,
tree ssa2 )
inherited

◆ query() [4/4]

relation_kind relation_oracle::query ( gimple * s,
tree ssa1,
tree ssa2 )
inherited

◆ record() [1/3]

◆ record() [2/3]

void relation_oracle::record ( edge e,
relation_kind k,
tree op1,
tree op2 )
inherited

◆ record() [3/3]

◆ register_equiv()

◆ reset_path()

◆ set_root_oracle()

void path_oracle::set_root_oracle ( relation_oracle * oracle)
inline

References m_root.

Referenced by path_oracle(), and reset_path().

◆ valid_equivs()

Field Documentation

◆ m_bitmaps

bitmap_obstack path_oracle::m_bitmaps
private

◆ m_chain_obstack

struct obstack path_oracle::m_chain_obstack
private

◆ m_equiv

equiv_chain path_oracle::m_equiv
private

◆ m_killed_defs

bitmap path_oracle::m_killed_defs
private

◆ m_relations

relation_chain_head path_oracle::m_relations
private

◆ m_root

relation_oracle* path_oracle::m_root
private

Referenced by equiv_set(), query(), and set_root_oracle().


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