Do not derive CommonPassManagerImpl from Pass.
authorDevang Patel <dpatel@apple.com>
Wed, 15 Nov 2006 01:11:27 +0000 (01:11 +0000)
committerDevang Patel <dpatel@apple.com>
Wed, 15 Nov 2006 01:11:27 +0000 (01:11 +0000)
Now BasicBlockPassManager_New is a FunctionPass,
FunctionPassManager_New is a ModulePass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31744 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/PassManager.cpp

index 1e7089745ee073c66291779662bb089950b4efd3..6ce61c3562376acca26f5cb3b525d4eb26d0dd6f 100644 (file)
@@ -24,7 +24,7 @@ namespace llvm {
 /// CommonPassManagerImpl helps pass manager analysis required by
 /// the managed passes. It provides methods to add/remove analysis
 /// available and query if certain analysis is available or not.
-class CommonPassManagerImpl : public Pass {
+class CommonPassManagerImpl {
 
 public:
 
@@ -124,7 +124,8 @@ private:
 /// BasicBlockPassManager_New manages BasicBlockPass. It batches all the
 /// pass together and sequence them to process one basic block before
 /// processing next basic block.
-class BasicBlockPassManager_New : public CommonPassManagerImpl {
+class BasicBlockPassManager_New : public CommonPassManagerImpl, 
+                                  public FunctionPass {
 
 public:
   BasicBlockPassManager_New() { }
@@ -146,7 +147,8 @@ private:
 /// It batches all function passes and basic block pass managers together and
 /// sequence them to process one function at a time before processing next
 /// function.
-class FunctionPassManagerImpl_New : public CommonPassManagerImpl {
+class FunctionPassManagerImpl_New : public CommonPassManagerImpl,
+                                    public ModulePass {
 public:
   FunctionPassManagerImpl_New(ModuleProvider *P) { /* TODO */ }
   FunctionPassManagerImpl_New() { 
@@ -353,8 +355,8 @@ void CommonPassManagerImpl::addPassToManager (Pass *P,
 // implementations it needs.
 //
 void CommonPassManagerImpl::initializeAnalysisImpl(Pass *P) {
-  AnalysisUsage AnUsage;
-  P->getAnalysisUsage(AnUsage);
+    AnalysisUsage AnUsage;
+    P->getAnalysisUsage(AnUsage);
  
   for (std::vector<const PassInfo *>::const_iterator
          I = AnUsage.getRequiredSet().begin(),