ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DefUseAnalysisAbstract Class Referenceabstract

#include <DefUseAnalysisAbstract.h>

Inheritance diagram for DefUseAnalysisAbstract:
Collaboration diagram for DefUseAnalysisAbstract:

Public Member Functions

 DefUseAnalysisAbstract ()
 
virtual ~DefUseAnalysisAbstract ()
 
virtual FilteredCFGNode
< IsDFAFilter
run (SgFunctionDefinition *function, bool &abortme)=0
 
- Public Member Functions inherited from Support
template<typename T >
std::string ToString (T t)
 
std::string resBool (bool val)
 
template<typename T >
bool isContainedinVector (T filterNode, std::vector< T > worklist)
 
std::string getAppName (SgFunctionDeclaration *functionDeclaration)
 
std::string getFileNameString (std::string src)
 
std::string getFullName (SgFunctionDefinition *functionDef)
 

Protected Types

typedef std::vector< std::pair
< SgInitializedName *, SgNode * > > 
multitype
 
typedef std::map< SgNode
*, multitype
tabletype
 
typedef FilteredCFGEdge
< IsDFAFilter
filteredCFGEdgeType
 
typedef FilteredCFGNode
< IsDFAFilter
filteredCFGNodeType
 

Protected Member Functions

bool searchMulti (const multitype *multi, SgInitializedName *initName)
 
bool searchVector (std::vector< filteredCFGNodeType > done, filteredCFGNodeType cfgNode)
 
SgInitializedNamegetInitName (SgNode *l_expr)
 
SgExpressionresolveCast (SgExpression *expr)
 
bool isDoubleExactEntry (const multitype *multi, SgInitializedName *name, SgNode *sgNode)
 
bool checkElementsForEquality (const multitype *t1, const multitype *t2)
 
template<typename T >
SgNodegetOtherInNode (T cfgNode, SgNode *oneNode)
 
template<typename T >
SgNodegetCFGPredNode (T cfgNode)
 
template<typename T >
void printCFGVector (std::vector< T > worklist)
 

Protected Attributes

bool DEBUG_MODE
 
bool DEBUG_MODE_EXTRA
 
DefUseAnalysisdfa
 
std::set< SgNode * > doNotVisitMap
 
std::map< SgNode *, bool > nodeChangedMap
 

Detailed Description

Definition at line 21 of file DefUseAnalysisAbstract.h.

Member Typedef Documentation

typedef std::vector< std::pair < SgInitializedName* , SgNode* > > DefUseAnalysisAbstract::multitype
protected

Definition at line 31 of file DefUseAnalysisAbstract.h.

typedef std::map< SgNode* , multitype > DefUseAnalysisAbstract::tabletype
protected

Definition at line 32 of file DefUseAnalysisAbstract.h.

Constructor & Destructor Documentation

DefUseAnalysisAbstract::DefUseAnalysisAbstract ( )
inline

Definition at line 108 of file DefUseAnalysisAbstract.h.

References doNotVisitMap, and nodeChangedMap.

virtual DefUseAnalysisAbstract::~DefUseAnalysisAbstract ( )
inlinevirtual

Definition at line 112 of file DefUseAnalysisAbstract.h.

Member Function Documentation

bool DefUseAnalysisAbstract::searchMulti ( const multitype multi,
SgInitializedName initName 
)
protected
bool DefUseAnalysisAbstract::searchVector ( std::vector< filteredCFGNodeType done,
filteredCFGNodeType  cfgNode 
)
protected
SgInitializedName* DefUseAnalysisAbstract::getInitName ( SgNode l_expr)
protected
SgExpression* DefUseAnalysisAbstract::resolveCast ( SgExpression expr)
protected
bool DefUseAnalysisAbstract::isDoubleExactEntry ( const multitype multi,
SgInitializedName name,
SgNode sgNode 
)
protected
bool DefUseAnalysisAbstract::checkElementsForEquality ( const multitype t1,
const multitype t2 
)
protected
template<typename T >
SgNode* DefUseAnalysisAbstract::getOtherInNode ( cfgNode,
SgNode oneNode 
)
inlineprotected
template<typename T >
SgNode* DefUseAnalysisAbstract::getCFGPredNode ( cfgNode)
inlineprotected
template<typename T >
void DefUseAnalysisAbstract::printCFGVector ( std::vector< T >  worklist)
inlineprotected

Definition at line 91 of file DefUseAnalysisAbstract.h.

virtual FilteredCFGNode< IsDFAFilter > DefUseAnalysisAbstract::run ( SgFunctionDefinition function,
bool &  abortme 
)
pure virtual

Implemented in LivenessAnalysis, and DefUseAnalysisPF.

Member Data Documentation

bool DefUseAnalysisAbstract::DEBUG_MODE
protected

Definition at line 24 of file DefUseAnalysisAbstract.h.

Referenced by DefUseAnalysisPF::DefUseAnalysisPF().

bool DefUseAnalysisAbstract::DEBUG_MODE_EXTRA
protected

Definition at line 25 of file DefUseAnalysisAbstract.h.

Referenced by DefUseAnalysisPF::DefUseAnalysisPF(), and getOtherInNode().

DefUseAnalysis* DefUseAnalysisAbstract::dfa
protected

Definition at line 28 of file DefUseAnalysisAbstract.h.

Referenced by DefUseAnalysisPF::DefUseAnalysisPF().

std::set<SgNode*> DefUseAnalysisAbstract::doNotVisitMap
protected

Definition at line 36 of file DefUseAnalysisAbstract.h.

Referenced by DefUseAnalysisAbstract().

std::map<SgNode*, bool> DefUseAnalysisAbstract::nodeChangedMap
protected

Definition at line 37 of file DefUseAnalysisAbstract.h.

Referenced by DefUseAnalysisAbstract().


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