1 #include <featureTests.h>
2 #ifdef ROSE_ENABLE_SOURCE_ANALYSIS
4 #ifndef DOMINATOR_ANALYSIS_H
5 #define DOMINATOR_ANALYSIS_H
7 #include "genericDataflowCommon.h"
8 #include "VirtualCFGIterator.h"
10 #include "CallGraphTraverse.h"
11 #include "analysisCommon.h"
14 #include "latticeFull.h"
15 #include "printAnalysisStates.h"
17 extern int dominatorAnalysisDebugLevel;
23 typedef enum { uninitialized=0, initialized } domLevel;
25 set<DataflowNode> domNodes;
57 void remapVars(
const map<varID, varID>& varNameMap,
const Function& newFunc);
64 void incorporateVars(
Lattice* that_arg);
85 bool meetUpdate(
Lattice* that_arg);
99 bool isDominator(
const DataflowNode& n,
string indent=
"");
104 string str(
string indent=
"");
111 const set<DataflowNode>& allNodes;
118 vector<Lattice*>& initLattices, vector<NodeFact*>& initFacts);
128 set<DataflowNode> allNodes;