[llvm-commits] CVS: llvm/lib/VMCore/PassManager.cpp
Devang Patel
dpatel at apple.com
Thu Dec 7 16:59:20 PST 2006
Changes in directory llvm/lib/VMCore:
PassManager.cpp updated: 1.58 -> 1.59
---
Log message:
doInitialization and doFinalization for BasicBlockPassManager_New
---
Diffs of the changes: (+60 -3)
PassManager.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 60 insertions(+), 3 deletions(-)
Index: llvm/lib/VMCore/PassManager.cpp
diff -u llvm/lib/VMCore/PassManager.cpp:1.58 llvm/lib/VMCore/PassManager.cpp:1.59
--- llvm/lib/VMCore/PassManager.cpp:1.58 Thu Dec 7 18:37:52 2006
+++ llvm/lib/VMCore/PassManager.cpp Thu Dec 7 18:59:05 2006
@@ -199,7 +199,6 @@
addTopLevelPass(P);
}
-
//===----------------------------------------------------------------------===//
// PMDataManager
@@ -327,7 +326,11 @@
Info.setPreservesAll();
}
-private:
+ bool doInitialization(Module &M);
+ bool doInitialization(Function &F);
+ bool doFinalization(Module &M);
+ bool doFinalization(Function &F);
+
};
/// FunctionPassManagerImpl_New manages FunctionPasses and BasicBlockPassManagers.
@@ -533,7 +536,7 @@
std::map<AnalysisID, Pass*>::iterator Pos =
AvailableAnalysis.find((*I)->getPassInfo());
- // It is possible that deadPass is already removed from the AvailableAnalysis
+ // It is possible that pass is already removed from the AvailableAnalysis
if (Pos != AvailableAnalysis.end())
AvailableAnalysis.erase(Pos);
}
@@ -669,6 +672,60 @@
return getAnalysisPass(AID);
}
+// Implement doInitialization and doFinalization
+inline bool BasicBlockPassManager_New::doInitialization(Module &M) {
+ bool Changed = false;
+
+ for (std::vector<Pass *>::iterator itr = passVectorBegin(),
+ e = passVectorEnd(); itr != e; ++itr) {
+ Pass *P = *itr;
+ BasicBlockPass *BP = dynamic_cast<BasicBlockPass*>(P);
+ Changed |= BP->doInitialization(M);
+ }
+
+ return Changed;
+}
+
+inline bool BasicBlockPassManager_New::doFinalization(Module &M) {
+ bool Changed = false;
+
+ for (std::vector<Pass *>::iterator itr = passVectorBegin(),
+ e = passVectorEnd(); itr != e; ++itr) {
+ Pass *P = *itr;
+ BasicBlockPass *BP = dynamic_cast<BasicBlockPass*>(P);
+ Changed |= BP->doFinalization(M);
+ }
+
+ return Changed;
+}
+
+inline bool BasicBlockPassManager_New::doInitialization(Function &F) {
+ bool Changed = false;
+
+ for (std::vector<Pass *>::iterator itr = passVectorBegin(),
+ e = passVectorEnd(); itr != e; ++itr) {
+ Pass *P = *itr;
+ BasicBlockPass *BP = dynamic_cast<BasicBlockPass*>(P);
+ Changed |= BP->doInitialization(F);
+ }
+
+ return Changed;
+}
+
+inline bool BasicBlockPassManager_New::doFinalization(Function &F) {
+ bool Changed = false;
+
+ for (std::vector<Pass *>::iterator itr = passVectorBegin(),
+ e = passVectorEnd(); itr != e; ++itr) {
+ Pass *P = *itr;
+ BasicBlockPass *BP = dynamic_cast<BasicBlockPass*>(P);
+ Changed |= BP->doFinalization(F);
+ }
+
+ return Changed;
+}
+
+
//===----------------------------------------------------------------------===//
// FunctionPassManager_New implementation
More information about the llvm-commits
mailing list