summaryrefslogtreecommitdiff
path: root/lib/VMCore/Pass.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-12-14 19:43:09 +0000
committerDan Gohman <gohman@apple.com>2009-12-14 19:43:09 +0000
commiteda23faedb436777ea8b1183f743d8add6b79170 (patch)
tree5b3901aece8bbc682b312538c99f69eda09a15a4 /lib/VMCore/Pass.cpp
parentcdfb30287689346f3fbb466f1ea62bbb9df73333 (diff)
downloadllvm-eda23faedb436777ea8b1183f743d8add6b79170.tar.gz
llvm-eda23faedb436777ea8b1183f743d8add6b79170.tar.bz2
llvm-eda23faedb436777ea8b1183f743d8add6b79170.tar.xz
Move several function bodies which are rarely inlined out of line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91319 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Pass.cpp')
-rw-r--r--lib/VMCore/Pass.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/lib/VMCore/Pass.cpp b/lib/VMCore/Pass.cpp
index 1232fe26de..6bea7a8b08 100644
--- a/lib/VMCore/Pass.cpp
+++ b/lib/VMCore/Pass.cpp
@@ -41,6 +41,10 @@ Pass::~Pass() {
// Force out-of-line virtual method.
ModulePass::~ModulePass() { }
+PassManagerType ModulePass::getPotentialPassManagerType() const {
+ return PMT_ModulePassManager;
+}
+
bool Pass::mustPreserveAnalysisID(const PassInfo *AnalysisID) const {
return Resolver->getAnalysisIfAvailable(AnalysisID, true) != 0;
}
@@ -60,6 +64,27 @@ const char *Pass::getPassName() const {
return "Unnamed pass: implement Pass::getPassName()";
}
+void Pass::preparePassManager(PMStack &) {
+ // By default, don't do anything.
+}
+
+PassManagerType Pass::getPotentialPassManagerType() const {
+ // Default implementation.
+ return PMT_Unknown;
+}
+
+void Pass::getAnalysisUsage(AnalysisUsage &) const {
+ // By default, no analysis results are used, all are invalidated.
+}
+
+void Pass::releaseMemory() {
+ // By default, don't do anything.
+}
+
+void Pass::verifyAnalysis() const {
+ // By default, don't do anything.
+}
+
// print - Print out the internal state of the pass. This is called by Analyze
// to print out the contents of an analysis. Otherwise it is not necessary to
// implement this method.
@@ -79,6 +104,10 @@ void Pass::dump() const {
// Force out-of-line virtual method.
ImmutablePass::~ImmutablePass() { }
+void ImmutablePass::initializePass() {
+ // By default, don't do anything.
+}
+
//===----------------------------------------------------------------------===//
// FunctionPass Implementation
//
@@ -107,6 +136,20 @@ bool FunctionPass::run(Function &F) {
return Changed | doFinalization(*F.getParent());
}
+bool FunctionPass::doInitialization(Module &) {
+ // By default, don't do anything.
+ return false;
+}
+
+bool FunctionPass::doFinalization(Module &) {
+ // By default, don't do anything.
+ return false;
+}
+
+PassManagerType FunctionPass::getPotentialPassManagerType() const {
+ return PMT_FunctionPassManager;
+}
+
//===----------------------------------------------------------------------===//
// BasicBlockPass Implementation
//
@@ -121,6 +164,30 @@ bool BasicBlockPass::runOnFunction(Function &F) {
return Changed | doFinalization(F);
}
+bool BasicBlockPass::doInitialization(Module &) {
+ // By default, don't do anything.
+ return false;
+}
+
+bool BasicBlockPass::doInitialization(Function &) {
+ // By default, don't do anything.
+ return false;
+}
+
+bool BasicBlockPass::doFinalization(Function &) {
+ // By default, don't do anything.
+ return false;
+}
+
+bool BasicBlockPass::doFinalization(Module &) {
+ // By default, don't do anything.
+ return false;
+}
+
+PassManagerType BasicBlockPass::getPotentialPassManagerType() const {
+ return PMT_BasicBlockPassManager;
+}
+
//===----------------------------------------------------------------------===//
// Pass Registration mechanism
//