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

#include <DefUseAnalysis_perFunction.h>

Inheritance diagram for DefUseAnalysisPF:
Collaboration diagram for DefUseAnalysisPF:

Public Member Functions

 DefUseAnalysisPF (bool debug, DefUseAnalysis *dfa_p)
 
virtual ~DefUseAnalysisPF ()
 
FilteredCFGNode< IsDFAFilterrun (SgFunctionDefinition *function, bool &abortme)
 
int getNumberOfNodesVisited ()
 
- Public Member Functions inherited from DefUseAnalysisAbstract
 DefUseAnalysisAbstract ()
 
virtual ~DefUseAnalysisAbstract ()
 
- 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)
 

Private Member Functions

bool makeSureThatTheUseIsInTable (SgInitializedName *initName)
 
bool makeSureThatTheDefIsInTable (SgInitializedName *initName)
 
template<typename T >
bool hasANodeAboveCurrentChanged (T cfgNode)
 
template<typename T >
bool performUseAndDefinition (SgNode *sgNode, SgInitializedName *initName, bool isUsage, bool isDefinition, SgNode *sgNodeBefore, bool dont_replace, T cfgNode)
 
void handleDefCopy (SgNode *sgNode, int nrOfInEdges, SgNode *sgNodeBefore, filteredCFGNodeType cfgNode)
 
void handleUseCopy (SgNode *sgNode, int nrOfInEdges, SgNode *sgNodeBefore, filteredCFGNodeType cfgNode)
 
template<typename T >
bool defuse (T cfgNode, bool *unhandled)
 

Private Attributes

int nrOfNodesVisitedPF
 
int breakPointForWhile
 
SgNodebreakPointForWhileNode
 

Additional Inherited Members

- Protected Types inherited from DefUseAnalysisAbstract
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 inherited from DefUseAnalysisAbstract
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 inherited from DefUseAnalysisAbstract
bool DEBUG_MODE
 
bool DEBUG_MODE_EXTRA
 
DefUseAnalysisdfa
 
std::set< SgNode * > doNotVisitMap
 
std::map< SgNode *, bool > nodeChangedMap
 

Detailed Description

Definition at line 13 of file DefUseAnalysis_perFunction.h.

Constructor & Destructor Documentation

DefUseAnalysisPF::DefUseAnalysisPF ( bool  debug,
DefUseAnalysis dfa_p 
)
inline
virtual DefUseAnalysisPF::~DefUseAnalysisPF ( )
inlinevirtual

Definition at line 49 of file DefUseAnalysis_perFunction.h.

Member Function Documentation

bool DefUseAnalysisPF::makeSureThatTheUseIsInTable ( SgInitializedName initName)
private
bool DefUseAnalysisPF::makeSureThatTheDefIsInTable ( SgInitializedName initName)
private
template<typename T >
bool DefUseAnalysisPF::hasANodeAboveCurrentChanged ( cfgNode)
private
template<typename T >
bool DefUseAnalysisPF::performUseAndDefinition ( SgNode sgNode,
SgInitializedName initName,
bool  isUsage,
bool  isDefinition,
SgNode sgNodeBefore,
bool  dont_replace,
cfgNode 
)
private
void DefUseAnalysisPF::handleDefCopy ( SgNode sgNode,
int  nrOfInEdges,
SgNode sgNodeBefore,
filteredCFGNodeType  cfgNode 
)
private
void DefUseAnalysisPF::handleUseCopy ( SgNode sgNode,
int  nrOfInEdges,
SgNode sgNodeBefore,
filteredCFGNodeType  cfgNode 
)
private
template<typename T >
bool DefUseAnalysisPF::defuse ( cfgNode,
bool *  unhandled 
)
private
FilteredCFGNode< IsDFAFilter > DefUseAnalysisPF::run ( SgFunctionDefinition function,
bool &  abortme 
)
virtual
int DefUseAnalysisPF::getNumberOfNodesVisited ( )

Member Data Documentation

int DefUseAnalysisPF::nrOfNodesVisitedPF
private

Definition at line 37 of file DefUseAnalysis_perFunction.h.

int DefUseAnalysisPF::breakPointForWhile
private

Definition at line 38 of file DefUseAnalysis_perFunction.h.

Referenced by DefUseAnalysisPF().

SgNode* DefUseAnalysisPF::breakPointForWhileNode
private

Definition at line 39 of file DefUseAnalysis_perFunction.h.

Referenced by DefUseAnalysisPF().


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