[llvm-commits] CVS: llvm/lib/VMCore/PassManager.cpp
Devang Patel
dpatel at apple.com
Tue Dec 12 15:08:00 PST 2006
Changes in directory llvm/lib/VMCore:
PassManager.cpp updated: 1.83 -> 1.84
---
Log message:
removeNotPreservedAnalysis().
Do not remove ImmutablePass from the list.
---
Diffs of the changes: (+8 -4)
PassManager.cpp | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
Index: llvm/lib/VMCore/PassManager.cpp
diff -u llvm/lib/VMCore/PassManager.cpp:1.83 llvm/lib/VMCore/PassManager.cpp:1.84
--- llvm/lib/VMCore/PassManager.cpp:1.83 Tue Dec 12 16:57:43 2006
+++ llvm/lib/VMCore/PassManager.cpp Tue Dec 12 17:07:44 2006
@@ -580,13 +580,17 @@
const std::vector<AnalysisID> &PreservedSet = AnUsage.getPreservedSet();
for (std::map<AnalysisID, Pass*>::iterator I = AvailableAnalysis.begin(),
- E = AvailableAnalysis.end(); I != E; ++I ) {
+ E = AvailableAnalysis.end(); I != E; ) {
if (std::find(PreservedSet.begin(), PreservedSet.end(), I->first) ==
PreservedSet.end()) {
// Remove this analysis
- std::map<AnalysisID, Pass*>::iterator J = I++;
- AvailableAnalysis.erase(J);
- }
+ if (!dynamic_cast<ImmutablePass*>(I->second)) {
+ std::map<AnalysisID, Pass*>::iterator J = I++;
+ AvailableAnalysis.erase(J);
+ } else
+ ++I;
+ } else
+ ++I;
}
}
More information about the llvm-commits
mailing list