1 #ifndef DOMINATOR_ANALYSIS_H
2 #define DOMINATOR_ANALYSIS_H
4 #include "genericDataflowCommon.h"
5 #include "VirtualCFGIterator.h"
7 #include "CallGraphTraverse.h"
8 #include "analysisCommon.h"
11 #include "latticeFull.h"
12 #include "printAnalysisStates.h"
14 extern int dominatorAnalysisDebugLevel;
20 typedef enum { uninitialized=0, initialized } domLevel;
22 set<DataflowNode> domNodes;
54 void remapVars(
const map<varID, varID>& varNameMap,
const Function& newFunc);
61 void incorporateVars(
Lattice* that_arg);
82 bool meetUpdate(
Lattice* that_arg);
96 bool isDominator(
const DataflowNode& n,
string indent=
"");
101 string str(
string indent=
"");
108 const set<DataflowNode>& allNodes;
115 vector<Lattice*>& initLattices, vector<NodeFact*>& initFacts);
125 set<DataflowNode> allNodes;
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes, since similar to statement, expressions have a concrete location within the user's source code.
This class represents a source project, with a list of SgFile objects and global information about th...