7 #ifndef __LivenessAnalysis_HXX_LOADED__
8 #define __LivenessAnalysis_HXX_LOADED__
11 #include "filteredCFG.h"
23 void printInAndOut(
SgNode* sgNode);
27 std::map<SgNode*, std::vector<SgInitializedName*> >
in;
28 std::map<SgNode*, std::vector<SgInitializedName*> >
out;
36 template <
typename T>
bool defuse(T cfgNode,
bool *unhandled);
38 template <
typename T>
bool hasANodeAboveCurrentChanged(T source);
40 template <
class T>
void getAllNodesBelow(T source,
41 std::vector<T>& visited);
42 template <
class T>
void getAllNodesAbove(T source, std::vector<T>& visited);
49 DEBUG_MODE_EXTRA=
false;
51 breakPointForWhileNode=NULL;
57 int getNumberOfNodesVisited();
62 std::vector<SgInitializedName*>
getIn(
SgNode* sgNode) {
return in[sgNode];}
63 std::vector<SgInitializedName*>
getOut(
SgNode* sgNode) {
return out[sgNode];}
66 void setIn(
SgNode* sgNode, std::vector<SgInitializedName*> vec) {
in[sgNode]= vec;}
67 void setOut(
SgNode* sgNode, std::vector<SgInitializedName*> vec ) { out[sgNode]=vec;}
71 template <
class T> T merge_no_dups( T& v1, T& v2);