Changes in directory llvm/lib/VMCore:
PassManagerT.h updated: 1.60 -> 1.61 --- Log message: patch #4 in Saem's passmanager refactoring. --- Diffs of the changes: (+50 -15) PassManagerT.h | 65 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 50 insertions(+), 15 deletions(-) Index: llvm/lib/VMCore/PassManagerT.h diff -u llvm/lib/VMCore/PassManagerT.h:1.60 llvm/lib/VMCore/PassManagerT.h:1.61 --- llvm/lib/VMCore/PassManagerT.h:1.60 Tue Jan 3 11:52:18 2006 +++ llvm/lib/VMCore/PassManagerT.h Tue Jan 3 22:36:11 2006 @@ -620,6 +620,7 @@ // Initialize the immutable pass... IP->initializePass(); } + }; @@ -659,7 +660,10 @@ virtual const char *getPMName() const { return "BasicBlock"; } virtual const char *getPassName() const { return "BasicBlock Pass Manager"; } - + + virtual bool runOnBasicBlock(BasicBlock &BB); + + // TODO:Start absorbing PassManagerTraits<BasicBlock> }; @@ -682,7 +686,12 @@ // Implement the BasicBlockPass interface... virtual bool doInitialization(Module &M); virtual bool doInitialization(Function &F); - virtual bool runOnBasicBlock(BasicBlock &BB); + + // Forwarded + virtual bool runOnBasicBlock(BasicBlock &BB) { + return BasicBlockPassManager::runOnBasicBlock(BB); + } + virtual bool doFinalization(Function &F); virtual bool doFinalization(Module &M); @@ -728,7 +737,10 @@ virtual const char *getPMName() const { return "Function"; } virtual const char *getPassName() const { return "Function Pass Manager"; } - + + virtual bool runOnFunction(Function &F); + + // TODO:Start absorbing PassManagerTraits<Function> }; @@ -749,7 +761,12 @@ // Implement the FunctionPass interface... virtual bool doInitialization(Module &M); - virtual bool runOnFunction(Function &F); + + // Forwarded + virtual bool runOnFunction(Function &F) { + return FunctionPassManagerT::runOnFunction(F); + } + virtual bool doFinalization(Module &M); virtual void getAnalysisUsage(AnalysisUsage &AU) const { @@ -762,7 +779,6 @@ } }; - //===----------------------------------------------------------------------===// // ModulePassManager // @@ -792,6 +808,8 @@ // debugging. virtual const char *getPMName() const { return "Module"; } + // runOnModule - Implement the PassManager interface. + virtual bool runOnModule(Module &M); // TODO:Start absorbing PassManagerTraits<Module> }; @@ -808,9 +826,9 @@ // runPass - Specify how the pass should be run on the UnitType static bool runPass(PassClass *P, Module *M) { return P->runOnModule(*M); } - // runOnModule - Implement the PassManager interface. + // Forwarded bool runOnModule(Module &M) { - return ((PassManagerT<Module>*)this)->runOnUnit(&M); + return ModulePassManager::runOnModule(M); } // Forwarded @@ -824,6 +842,31 @@ // PassManagerTraits Method Implementations // +// BasicBlockPassManager Implementations +// + +inline bool BasicBlockPassManager::runOnBasicBlock(BasicBlock &BB) { + return ((PMType*)this)->runOnUnit(&BB); +} + +// FunctionPassManagerT Implementations +// + +inline bool FunctionPassManagerT::runOnFunction(Function &F) { + return ((PMType*)this)->runOnUnit(&F); +} + +// ModulePassManager Implementations +// + +bool ModulePassManager::runOnModule(Module &M) { + return ((PassManagerT<Module>*)this)->runOnUnit(&M); +} + +//===----------------------------------------------------------------------===// +// PassManagerTraits Method Implementations +// + // PassManagerTraits<BasicBlock> Implementations // inline bool PassManagerTraits<BasicBlock>::doInitialization(Module &M) { @@ -840,10 +883,6 @@ return Changed; } -inline bool PassManagerTraits<BasicBlock>::runOnBasicBlock(BasicBlock &BB) { - return ((PMType*)this)->runOnUnit(&BB); -} - inline bool PassManagerTraits<BasicBlock>::doFinalization(Function &F) { bool Changed = false; for (unsigned i = 0, e = ((PMType*)this)->Passes.size(); i != e; ++i) @@ -868,10 +907,6 @@ return Changed; } -inline bool PassManagerTraits<Function>::runOnFunction(Function &F) { - return ((PMType*)this)->runOnUnit(&F); -} - inline bool PassManagerTraits<Function>::doFinalization(Module &M) { bool Changed = false; for (unsigned i = 0, e = ((PMType*)this)->Passes.size(); i != e; ++i) _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits