// FIXME: Should remove this
virtual bool runOnFunction(Function &F) { return false; }
- /// isAnalysis - Return true if this pass is implementing an analysis pass.
- virtual bool isAnalysis() const { return true; }
-
virtual void releaseMemory() { reset(); }
/// getNode - return the (Post)DominatorTree node for the specified basic
static char ID; // Pass ID, replacement for typeid
DominatorTreeBase<BasicBlock>* DT;
- DominatorTree() : FunctionPass(intptr_t(&ID)) {
+ DominatorTree() : FunctionPass(intptr_t(&ID), true) {
DT = new DominatorTreeBase<BasicBlock>(false);
}
return DT->getRootNode();
}
- /// isAnalysis - Return true if this pass is implementing an analysis pass.
- virtual bool isAnalysis() const { return true; }
-
virtual bool runOnFunction(Function &F);
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
public:
DominanceFrontierBase(intptr_t ID, bool isPostDom)
- : FunctionPass(ID), IsPostDominators(isPostDom) {}
+ : FunctionPass(ID, true), IsPostDominators(isPostDom) {}
/// getRoots - Return the root blocks of the current CFG. This may include
/// multiple blocks if we are computing post dominators. For forward
return Roots[0];
}
- /// isAnalysis - Return true if this pass is implementing an analysis pass.
- virtual bool isAnalysis() const { return true; }
-
virtual bool runOnFunction(Function &) {
Frontiers.clear();
DominatorTree &DT = getAnalysis<DominatorTree>();