CallGraphSCCPass does not need to implement runOnModule().
It supports runOnSCC().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33516
91177308-0d34-0410-b5e6-
96231b3b80d8
return false;
}
- /// run - Run this pass, returning true if a modification was made to the
- /// module argument. This is implemented in terms of the runOnSCC method.
- ///
- virtual bool runOnModule(Module &M);
-
/// Assign pass manager to manager this pass
virtual void assignPassManager(PMStack &PMS,
PassManagerType PMT = PMT_CallGraphPassManager);
AU.addRequired<CallGraph>();
AU.addPreserved<CallGraph>();
}
-
-bool CallGraphSCCPass::runOnModule(Module &M) {
- CallGraph &CG = getAnalysis<CallGraph>();
- bool Changed = doInitialization(CG);
- for (scc_iterator<CallGraph*> I = scc_begin(&CG), E = scc_end(&CG);
- I != E; ++I)
- Changed = runOnSCC(*I);
- return Changed | doFinalization(CG);
-}