Class DefUseAnalysis#

Inheritance Relationships#

Base Types#

Class Documentation#

class DefUseAnalysis : public DFAnalysis, private Support#

Public Functions

inline DefUseAnalysis(SgProject *proj)#
inline virtual ~DefUseAnalysis()#
inline virtual std::map<SgNode*, multitype> getDefMap()#
inline virtual std::map<SgNode*, multitype> getUseMap()#
inline void setMaps(std::map<SgNode*, multitype> def, std::map<SgNode*, multitype> use)#
virtual int run()#

Run the DFA analysis without debugging.

virtual int run(bool debug)#
virtual multitype getDefMultiMapFor(SgNode *node)#

get the Definition multimap of a specific SgNode.

virtual multitype getUseMultiMapFor(SgNode *node)#

get the Usage multimap of a specific SgNode.

std::vector<SgNode*> getAnyFor(const multitype *mul, SgInitializedName *initName)#
virtual std::vector<SgNode*> getDefFor(SgNode *node, SgInitializedName *initName)#

get the vector of defining nodes for a specific node and a initializedName.

virtual std::vector<SgNode*> getUseFor(SgNode *node, SgInitializedName *initName)#

get the vector of usage nodes for a specific node and a initializedName.

virtual bool isNodeGlobalVariable(SgInitializedName *node)#

return whether a node is a global node

std::vector<SgInitializedName*> getGlobalVariables()#
int start_traversal_of_one_function(SgFunctionDefinition *proc)#
bool searchMap(SgNode *node)#
virtual int getDefSize()#
virtual int getUseSize()#
void printMultiMap(const multitype *type)#
void printMultiMap(const multitype &type)#
virtual void printDefMap()#
virtual void printUseMap()#
bool addID(SgNode *sgNode)#
void addDefElement(SgNode *sgNode, SgInitializedName *initName, SgNode *defNode)#
void addUseElement(SgNode *sgNode, SgInitializedName *initName, SgNode *defNode)#
void replaceElement(SgNode *sgNode, SgInitializedName *initName)#
void mapDefUnion(SgNode *before, SgNode *other, SgNode *current)#
void mapUseUnion(SgNode *before, SgNode *other, SgNode *current)#
void clearUseOfElement(SgNode *sgNode, SgInitializedName *initName)#
virtual int getIntForSgNode(SgNode *node)#
virtual void dfaToDOT()#
inline void flush()#
inline void flushHelp()#
inline void disableVisualization()#
inline void flushDefuse()#