1 #include <featureTests.h>
2 #ifdef ROSE_ENABLE_SOURCE_ANALYSIS
7 #include "genericDataflowCommon.h"
8 #include "VirtualCFGIterator.h"
10 #include "CallGraphTraverse.h"
11 #include "analysisCommon.h"
14 #include "latticeFull.h"
15 #include "liveDeadVarAnalysis.h"
16 #include "printAnalysisStates.h"
18 extern int sgnAnalysisDebugLevel;
66 this->sgnState = that.sgnState;
67 this->level = that.level;
75 this->level = sgnKnown;
76 if(val > 0) this->sgnState = posZero;
77 else this->sgnState = negZero;
84 if(level == uninitialized)
99 bool copyMod(
Lattice* that_arg);
103 bool meetUpdate(
Lattice* that);
105 bool operator==(
Lattice* that);
108 sgnStates getSgnState()
const;
109 sgnLevels getLevel()
const;
121 bool setSgnKnown(sgnStates sgnState);
133 bool plus(
long increment);
141 bool minus(
long increment);
153 bool multdiv(
long multiplier);
163 string str(
string indent=
"");
169 static map<varID, Lattice*> constVars;
170 static bool constVars_init;
185 vector<Lattice*>& initLattices, vector<NodeFact*>& initFacts);
191 void printSgnAnalysisStates(
SgnAnalysis* sa,
string indent=
"");