aboutsummaryrefslogtreecommitdiffstats
path: root/lib/VMCore/Pass.cpp
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2003-08-12 17:22:39 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2003-08-12 17:22:39 +0000
commit8ab1ef265a6547ab13c10a26c994610bd3ad9d9e (patch)
treed7918240cc1a0fb35cca4aec6e72e356b6d17c62 /lib/VMCore/Pass.cpp
parent20a3be3ba832947d1dc5e6b26ae68335a7914aff (diff)
downloadexternal_llvm-8ab1ef265a6547ab13c10a26c994610bd3ad9d9e.tar.gz
external_llvm-8ab1ef265a6547ab13c10a26c994610bd3ad9d9e.tar.bz2
external_llvm-8ab1ef265a6547ab13c10a26c994610bd3ad9d9e.zip
Add FunctionPassManager - it's like a PassManager, but it only deals in
FunctionPasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7778 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Pass.cpp')
-rw-r--r--lib/VMCore/Pass.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/VMCore/Pass.cpp b/lib/VMCore/Pass.cpp
index ec193debfa..6535d10467 100644
--- a/lib/VMCore/Pass.cpp
+++ b/lib/VMCore/Pass.cpp
@@ -70,6 +70,16 @@ PassManager::~PassManager() { delete PM; }
void PassManager::add(Pass *P) { PM->add(P); }
bool PassManager::run(Module &M) { return PM->run(M); }
+//===----------------------------------------------------------------------===//
+// FunctionPassManager implementation - The FunctionPassManager class
+// is a simple Pimpl class that wraps the PassManagerT template. It
+// is like PassManager, but only deals in FunctionPasses.
+//
+FunctionPassManager::FunctionPassManager() : PM(new PassManagerT<Function>()) {}
+FunctionPassManager::~FunctionPassManager() { delete PM; }
+void FunctionPassManager::add(FunctionPass *P) { PM->add(P); }
+bool FunctionPassManager::run(Function &F) { return PM->run(F); }
+
//===----------------------------------------------------------------------===//
// TimingInfo Class - This class is used to calculate information about the