Revert r111199; it breaks -debug-pass=Structure output.
authorDan Gohman <gohman@apple.com>
Thu, 19 Aug 2010 01:29:07 +0000 (01:29 +0000)
committerDan Gohman <gohman@apple.com>
Thu, 19 Aug 2010 01:29:07 +0000 (01:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111500 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Pass.h
include/llvm/PassManagers.h
lib/Analysis/IPA/CallGraphSCCPass.cpp
lib/Analysis/LoopPass.cpp
lib/VMCore/Pass.cpp
lib/VMCore/PassManager.cpp

index 9f4e963343c43ee10893489148bfab595ec7e1e2..f4c6eed2cf9aef3805ebb09140fa4908d532c40e 100644 (file)
@@ -163,7 +163,7 @@ public:
   virtual void verifyAnalysis() const;
 
   // dumpPassStructure - Implement the -debug-passes=PassStructure option
-  void dumpPass(unsigned Offset = 0);
+  virtual void dumpPassStructure(unsigned Offset = 0);
 
   // lookupPassInfo - Return the pass info object for the specified pass class,
   // or null if it is not known.
index e324184207769aaf3d25b80ae594b5a6a8d512f8..17f4a0592fbbef2cdf5decfdc1527050da31f05f 100644 (file)
@@ -362,9 +362,6 @@ public:
       InheritedAnalysis[Index++] = (*I)->getAvailableAnalysis();
   }
 
-  /// dumpPassStructure - Implement the -debug-passes=PassStructure option.
-  virtual void dumpPassStructure(unsigned Offset) = 0;
-
 protected:
 
   // Top level manager.
index 1063190f4e5ebfb4af9f0b8c5f813f6899d5b1ab..b7a27cb288d92b564b457bec01a9c23c882c45db 100644 (file)
@@ -73,7 +73,7 @@ public:
     errs().indent(Offset*2) << "Call Graph SCC Pass Manager\n";
     for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
       Pass *P = getContainedPass(Index);
-      P->dumpPass(Offset + 1);
+      P->dumpPassStructure(Offset + 1);
       dumpLastUses(P, Offset+1);
     }
   }
index 718b615aa5c113ae29ddff38ee4ab11f3b9dbf7f..15d4db8f5f98e7e4be4cb38a02d976f80aa1cea5 100644 (file)
@@ -332,7 +332,7 @@ void LPPassManager::dumpPassStructure(unsigned Offset) {
   errs().indent(Offset*2) << "Loop Pass Manager\n";
   for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
     Pass *P = getContainedPass(Index);
-    P->dumpPass(Offset + 1);
+    P->dumpPassStructure(Offset + 1);
     dumpLastUses(P, Offset+1);
   }
 }
index 9995d1d492238c58a5d4ff91b13ad4c9fb49c850..a7d7f61dd76225104acad4ae6c57b5e671059830 100644 (file)
@@ -48,8 +48,8 @@ bool Pass::mustPreserveAnalysisID(char &AID) const {
   return Resolver->getAnalysisIfAvailable(&AID, true) != 0;
 }
 
-// dumpPass - Implement the -debug-passes=Structure option
-void Pass::dumpPass(unsigned Offset) {
+// dumpPassStructure - Implement the -debug-passes=Structure option
+void Pass::dumpPassStructure(unsigned Offset) {
   dbgs().indent(Offset*2) << getPassName() << "\n";
 }
 
index 14c91740ae7e504ec837740b0e7c24c304234cad..ab4d4e55c75044e1e2d82ffd4753e41960739029 100644 (file)
@@ -192,7 +192,7 @@ public:
     llvm::dbgs() << std::string(Offset*2, ' ') << "BasicBlockPass Manager\n";
     for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
       BasicBlockPass *BP = getContainedPass(Index);
-      BP->dumpPass(Offset + 1);
+      BP->dumpPassStructure(Offset + 1);
       dumpLastUses(BP, Offset+1);
     }
   }
@@ -286,11 +286,6 @@ public:
     FPPassManager *FP = static_cast<FPPassManager *>(PassManagers[N]);
     return FP;
   }
-
-  /// dumpPassStructure - Implement the -debug-passes=PassStructure option.
-  void dumpPassStructure(unsigned) {
-    llvm_unreachable("dumpPassStructure called on FunctionPassManagerImpl");
-  }
 };
 
 char FunctionPassManagerImpl::ID = 0;
@@ -353,7 +348,7 @@ public:
     llvm::dbgs() << std::string(Offset*2, ' ') << "ModulePass Manager\n";
     for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
       ModulePass *MP = getContainedPass(Index);
-      MP->dumpPass(Offset + 1);
+      MP->dumpPassStructure(Offset + 1);
       std::map<Pass *, FunctionPassManagerImpl *>::const_iterator I =
         OnTheFlyManagers.find(MP);
       if (I != OnTheFlyManagers.end())
@@ -437,11 +432,6 @@ public:
     MPPassManager *MP = static_cast<MPPassManager *>(PassManagers[N]);
     return MP;
   }
-
-  /// dumpPassStructure - Implement the -debug-passes=PassStructure option.
-  void dumpPassStructure(unsigned) {
-    llvm_unreachable("dumpPassStructure called on PassManagerImpl");
-  }
 };
 
 char PassManagerImpl::ID = 0;
@@ -667,14 +657,16 @@ void PMTopLevelManager::dumpPasses() const {
 
   // Print out the immutable passes
   for (unsigned i = 0, e = ImmutablePasses.size(); i != e; ++i) {
-    ImmutablePasses[i]->dumpPass();
+    ImmutablePasses[i]->dumpPassStructure(0);
   }
 
-  // Print out the normal passes. We add an extra layer of indentation here
-  // to help distinguish them visually from the immutable passes.
+  // Every class that derives from PMDataManager also derives from Pass
+  // (sometimes indirectly), but there's no inheritance relationship
+  // between PMDataManager and Pass, so we have to getAsPass to get
+  // from a PMDataManager* to a Pass*.
   for (SmallVector<PMDataManager *, 8>::const_iterator I = PassManagers.begin(),
          E = PassManagers.end(); I != E; ++I)
-    (*I)->dumpPassStructure(1);
+    (*I)->getAsPass()->dumpPassStructure(1);
 }
 
 void PMTopLevelManager::dumpArguments() const {
@@ -1049,7 +1041,7 @@ void PMDataManager::dumpLastUses(Pass *P, unsigned Offset) const{
   for (SmallVector<Pass *, 12>::iterator I = LUses.begin(),
          E = LUses.end(); I != E; ++I) {
     llvm::dbgs() << "--" << std::string(Offset*2, ' ');
-    (*I)->dumpPass(0);
+    (*I)->dumpPassStructure(0);
   }
 }
 
@@ -1417,7 +1409,7 @@ void FPPassManager::dumpPassStructure(unsigned Offset) {
   llvm::dbgs() << std::string(Offset*2, ' ') << "FunctionPass Manager\n";
   for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
     FunctionPass *FP = getContainedPass(Index);
-    FP->dumpPass(Offset + 1);
+    FP->dumpPassStructure(Offset + 1);
     dumpLastUses(FP, Offset+1);
   }
 }