aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2006-12-07 21:27:23 +0000
committerDevang Patel <dpatel@apple.com>2006-12-07 21:27:23 +0000
commiteb0d613ef6755f93610e08534a203c41ec14b56a (patch)
treecba485ee7b3f8113c57ac5408151fda4d33d1aca
parent1209f416cf2f2ec0f335d91a7c115e3b0a37d603 (diff)
downloadexternal_llvm-eb0d613ef6755f93610e08534a203c41ec14b56a.zip
external_llvm-eb0d613ef6755f93610e08534a203c41ec14b56a.tar.gz
external_llvm-eb0d613ef6755f93610e08534a203c41ec14b56a.tar.bz2
Now FunctionPassManagerImpl_New and PassManagerImpl_New derives from
PMTopLevelManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32325 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/VMCore/PassManager.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/VMCore/PassManager.cpp b/lib/VMCore/PassManager.cpp
index c0aeaa2..dfcfcf8 100644
--- a/lib/VMCore/PassManager.cpp
+++ b/lib/VMCore/PassManager.cpp
@@ -327,8 +327,9 @@ private:
/// It batches all function passes and basic block pass managers together and
/// sequence them to process one function at a time before processing next
/// function.
-class FunctionPassManagerImpl_New : public PMDataManager,
- public ModulePass {
+class FunctionPassManagerImpl_New : public ModulePass,
+ public PMDataManager,
+ public PMTopLevelManager {
public:
FunctionPassManagerImpl_New(ModuleProvider *P) { /* TODO */ }
FunctionPassManagerImpl_New() {
@@ -336,6 +337,10 @@ public:
}
~FunctionPassManagerImpl_New() { /* TODO */ };
+ inline void addTopLevelPass(Pass *P) {
+ addPass(P);
+ }
+
/// add - Add a pass to the queue of passes to run. This passes
/// ownership of the Pass to the PassManager. When the
/// PassManager_X is destroyed, the pass will be destroyed as well, so
@@ -402,7 +407,8 @@ private:
};
/// PassManager_New manages ModulePassManagers
-class PassManagerImpl_New : public PMDataManager {
+class PassManagerImpl_New : public PMDataManager,
+ public PMTopLevelManager {
public:
@@ -424,6 +430,10 @@ public:
Info.setPreservesAll();
}
+ inline void addTopLevelPass(Pass *P) {
+ addPass(P);
+ }
+
private:
/// Add a pass into a passmanager queue.