[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