1 #ifndef NODE_CONST_ANALYSIS_H
2 #define NODE_CONST_ANALYSIS_H
4 #include "genericDataflowCommon.h"
6 #include "VirtualCFGIterator.h"
8 #include "CallGraphTraverse.h"
9 #include "analysisCommon.h"
12 #include "latticeFull.h"
13 #include "printAnalysisStates.h"
18 extern int nodeConstAnalysisDebugLevel;
31 static const int uninitialized=0;
36 static const int bottom=1;
39 static const int valKnown=2;
41 static const int top=3;
45 static const int noAssign=bottom;
46 static const int constVal=valKnown;
47 static const int multVal=top;
63 this->valID = that.valID;
64 this->level = that.level;
70 if(level == uninitialized)
94 bool increment(
int val=1);
107 short getValConst()
const;
115 bool set(
unsigned long valID);
121 std::string str(std::string indent=
"");
142 std::vector<Lattice*>& initLattices, std::vector<NodeFact*>& initFacts);