Class DefUseAnalysisAbstract#

Inheritance Relationships#

Base Type#

Derived Types#

Class Documentation#

class DefUseAnalysisAbstract : public Support#

Subclassed by DefUseAnalysisPF, LivenessAnalysis

Public Functions

inline DefUseAnalysisAbstract()#
inline virtual ~DefUseAnalysisAbstract()#
virtual FilteredCFGNode<IsDFAFilter> run(SgFunctionDefinition *function, bool &abortme) = 0#

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 Functions

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

Protected Attributes

bool DEBUG_MODE#
bool DEBUG_MODE_EXTRA#
DefUseAnalysis *dfa#
std::set<SgNode*> doNotVisitMap#
std::map<SgNode*, bool> nodeChangedMap#