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"
17extern 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;
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes,...
This class represents a source project, with a list of SgFile objects and global information about th...