[llvm-commits] CVS: llvm/lib/VMCore/PassManagerT.h

Chris Lattner lattner at cs.uiuc.edu
Sun Sep 29 17:51:00 PDT 2002


Changes in directory llvm/lib/VMCore:

PassManagerT.h updated: 1.29 -> 1.30

---
Log message:

Fix a problem that was caused by stale analyses being in CurrentAnalyses


---
Diffs of the changes:

Index: llvm/lib/VMCore/PassManagerT.h
diff -u llvm/lib/VMCore/PassManagerT.h:1.29 llvm/lib/VMCore/PassManagerT.h:1.30
--- llvm/lib/VMCore/PassManagerT.h:1.29	Wed Sep 25 17:26:52 2002
+++ llvm/lib/VMCore/PassManagerT.h	Sun Sep 29 17:50:22 2002
@@ -292,6 +292,19 @@
                                       (Annotable*)M);
         (*I)->releaseMemory();
       }
+
+      // Make sure to remove dead passes from the CurrentAnalyses list...
+      for (std::map<AnalysisID, Pass*>::iterator I = CurrentAnalyses.begin();
+           I != CurrentAnalyses.end(); ) {
+        std::vector<Pass*>::iterator DPI = std::find(DeadPass.begin(),
+                                                     DeadPass.end(), I->second);
+        if (DPI != DeadPass.end()) {    // This pass is dead now... remove it
+          std::map<AnalysisID, Pass*>::iterator IDead = I++;
+          CurrentAnalyses.erase(IDead);
+        } else {
+          ++I;  // Move on to the next element...
+        }
+      }
     }
     return MadeChanges;
   }





More information about the llvm-commits mailing list