C-Breeze
C Compiler Infrastructure

[ Project home page]
Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

defFlowVal Class Reference

Internal data structure to store dataflow value on reaching definitions. More...

List of all members.

Public Member Functions

 defFlowVal (int n, map< threeAddrNode *, int > *m, threeAddrNode **d)
 the constructor.

 ~defFlowVal (void)
void to_top (void)
defFlowVal * clone (void) const
bool diff (defFlowVal *other) const
bool in (threeAddrNode *s) const
bool in (int i) const
void insert (threeAddrNode *s)
 insert a definition into the set, by a pointer to the definition

void insert (int i)
 insert a definition into the set, by the index of the definition

void remove (threeAddrNode *s)
 remove a definition from the set, by a pointer to the definition

void remove (int i)
 remove a definition from the set, by the index of the definition

void copy (defFlowVal *other)
 make this flow value a copy of the parameter

void Union (const defFlowVal *v)
 set this definition to the union of itself with the parameter

void Intersect (const defFlowVal *v)
 set this definition to the intersection of itself with the parameter

void Difference (defFlowVal *other)
void meet (const defFlowVal *v)
 meet operator (union for reaching definitions)


Private Attributes

int size
map< threeAddrNode *, int > * def2num
Bitsbits
threeAddrNode ** definitions

Friends

class reachingGenKillWalker


Detailed Description

Internal data structure to store dataflow value on reaching definitions.

Definition at line 45 of file reaching.cc.


Constructor & Destructor Documentation

defFlowVal::defFlowVal int    n,
map< threeAddrNode *, int > *    m,
threeAddrNode **    d
[inline]
 

the constructor.

Note: this constructor for defFlowVal is called from within the reachingGenKillWalker; you will likely not need to call it yourself. Use the new_flowval() function of reachingGenKillWalker to get a new flow value, set to top, with the right values for the reaching definitions problem the walker was called on.

Definition at line 65 of file reaching.cc.

defFlowVal::~defFlowVal void    [inline]
 

Definition at line 68 of file reaching.cc.


Member Function Documentation

defFlowVal* defFlowVal::clone void    const [inline]
 

Definition at line 74 of file reaching.cc.

References Bits::clone().

Referenced by reachingDefinitionsWalker::at_proc().

void defFlowVal::copy defFlowVal *    other [inline]
 

make this flow value a copy of the parameter

Definition at line 108 of file reaching.cc.

References Bits::copy().

Referenced by reachingDefinitionsWalker::at_proc().

bool defFlowVal::diff defFlowVal *    other const [inline]
 

Definition at line 81 of file reaching.cc.

References Bits::value().

Referenced by reachingDefinitionsWalker::at_proc().

void defFlowVal::Difference defFlowVal *    other [inline]
 

Definition at line 118 of file reaching.cc.

References Bits::And(), Bits::copy(), and Bits::Not().

Referenced by reachingDefinitionsWalker::at_basicblock(), and reachingDefinitionsWalker::at_proc().

bool defFlowVal::in int    i const [inline]
 

Definition at line 93 of file reaching.cc.

References Bits::value().

bool defFlowVal::in threeAddrNode   s const [inline]
 

Definition at line 90 of file reaching.cc.

References Bits::value().

Referenced by reachingDefinitionsWalker::make_ud_chains().

void defFlowVal::insert int    i [inline]
 

insert a definition into the set, by the index of the definition

Definition at line 99 of file reaching.cc.

References Bits::set().

void defFlowVal::insert threeAddrNode   s [inline]
 

insert a definition into the set, by a pointer to the definition

Definition at line 96 of file reaching.cc.

References Bits::set().

void defFlowVal::Intersect const defFlowVal *    v [inline]
 

set this definition to the intersection of itself with the parameter

Definition at line 114 of file reaching.cc.

References Bits::And().

void defFlowVal::meet const defFlowVal *    v [inline]
 

meet operator (union for reaching definitions)

Definition at line 127 of file reaching.cc.

References Union.

void defFlowVal::remove int    i [inline]
 

remove a definition from the set, by the index of the definition

Definition at line 105 of file reaching.cc.

References Bits::set().

void defFlowVal::remove threeAddrNode   s [inline]
 

remove a definition from the set, by a pointer to the definition

Definition at line 102 of file reaching.cc.

References Bits::set().

void defFlowVal::to_top void    [inline]
 

Definition at line 71 of file reaching.cc.

References Bits::reset_all().

Referenced by reachingDefinitionsWalker::at_proc().

void defFlowVal::Union const defFlowVal *    v [inline]
 

set this definition to the union of itself with the parameter

Definition at line 111 of file reaching.cc.

References Bits::Or().

Referenced by reachingDefinitionsWalker::at_basicblock(), and reachingDefinitionsWalker::at_proc().


Friends And Related Function Documentation

friend class reachingGenKillWalker [friend]
 

Definition at line 46 of file reaching.cc.


Member Data Documentation

Bits* defFlowVal::bits [private]
 

Definition at line 52 of file reaching.cc.

map<threeAddrNode*, int>* defFlowVal::def2num [private]
 

Definition at line 50 of file reaching.cc.

threeAddrNode** defFlowVal::definitions [private]
 

Definition at line 53 of file reaching.cc.

int defFlowVal::size [private]
 

Definition at line 49 of file reaching.cc.


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

Generated on August 27, 2003
Back to the C-Breeze home page