Saem Ghani's PassManager Patch #8:
authorReid Spencer <rspencer@reidspencer.com>
Sun, 8 Jan 2006 22:57:07 +0000 (22:57 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Sun, 8 Jan 2006 22:57:07 +0000 (22:57 +0000)
This fixes a "gccass" regression. The -debug-pass=Structure option now
prints all the appropriate output

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

lib/VMCore/PassManagerT.h

index c346aceb2d9150a1e40bd5a5af11a96707c82d98..6cd109ea517045958369deba60178204991c0fb3 100644 (file)
@@ -288,7 +288,7 @@ public:
     assert(dynamic_cast<PassClass*>(this) && 
            "It wasn't the PassClass I thought it was");
     if (Parent == 0) 
-      PMDebug::PerformPassStartupStuff((dynamic_cast<PassClass*>(this)));
+      PMDebug::PerformPassStartupStuff((dynamic_cast<PMType*>(this)));
 
     // Run all of the passes
     for (unsigned i = 0, e = Passes.size(); i < e; ++i) {
@@ -399,8 +399,9 @@ public:
   }
 
   // dumpPassStructure - Implement the -debug-passes=PassStructure option
-  virtual void dumpPassStructure(unsigned Offset = 0) {
+  inline void dumpPassStructure(unsigned Offset = 0) {
     // Print out the immutable passes...
+    
     for (unsigned i = 0, e = ImmutablePasses.size(); i != e; ++i)
       ImmutablePasses[i]->dumpPassStructure(0);
 
@@ -653,6 +654,7 @@ private:
       }
     }
   }
+
 public:
   // When an ImmutablePass is added, it gets added to the top level pass
   // manager.
@@ -723,6 +725,10 @@ public:
   
   virtual ~BasicBlockPassManager() {}
   
+  virtual void dumpPassStructure(unsigned Offset = 0) { 
+    PassManagerT<BBTraits>::dumpPassStructure(Offset);
+  }
+  
   // getPMName() - Return the name of the unit the PassManager operates on for
   // debugging.
   virtual const char *getPMName() const { return "BasicBlock"; }
@@ -761,6 +767,10 @@ public:
   
   virtual ~FunctionPassManagerT() {}
   
+  virtual void dumpPassStructure(unsigned Offset = 0) { 
+    PassManagerT<FTraits>::dumpPassStructure(Offset);
+  }
+  
   // getPMName() - Return the name of the unit the PassManager operates on for
   // debugging.
   virtual const char *getPMName() const { return "Function"; }
@@ -804,6 +814,10 @@ public:
   
   virtual ~ModulePassManager() {}
   
+  virtual void dumpPassStructure(unsigned Offset = 0) { 
+    PassManagerT<MTraits>::dumpPassStructure(Offset);
+  }
+  
   // getPMName() - Return the name of the unit the PassManager operates on for
   // debugging.
   virtual const char *getPassName() const { return "Module Pass Manager"; }