PassInfo keep tracks whether a pass is an analysis pass or not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48554 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel
2008-03-19 21:56:59 +00:00
parent 7925ed05d0
commit c758209153
35 changed files with 92 additions and 75 deletions

View File

@@ -73,7 +73,6 @@ enum PassManagerType {
class Pass {
AnalysisResolver *Resolver; // Used to resolve analysis
intptr_t PassID;
bool isAnalysisPass; // True if this pass is an analysis pass.
// AnalysisImpls - This keeps track of which passes implement the interfaces
// that are required by the current pass (to implement getAnalysis()).
//
@@ -82,14 +81,11 @@ class Pass {
void operator=(const Pass&); // DO NOT IMPLEMENT
Pass(const Pass &); // DO NOT IMPLEMENT
public:
explicit Pass(intptr_t pid, bool AP = false) : Resolver(0), PassID(pid),
isAnalysisPass(AP) {}
explicit Pass(const void *pid, bool AP = false) : Resolver(0),
PassID((intptr_t)pid),
isAnalysisPass(AP) {}
explicit Pass(intptr_t pid) : Resolver(0), PassID(pid) {}
explicit Pass(const void *pid) : Resolver(0),
PassID((intptr_t)pid) {}
virtual ~Pass();
bool isAnalysis() const { return isAnalysisPass; }
/// getPassName - Return a nice clean name for a pass. This usually
/// implemented in terms of the name that is registered by one of the
/// Registration templates, but can be overloaded directly.
@@ -231,8 +227,8 @@ public:
return PMT_ModulePassManager;
}
explicit ModulePass(intptr_t pid, bool AP = false) : Pass(pid, AP) {}
explicit ModulePass(const void *pid, bool AP = false) : Pass(pid, AP) {}
explicit ModulePass(intptr_t pid) : Pass(pid) {}
explicit ModulePass(const void *pid) : Pass(pid) {}
// Force out-of-line virtual method.
virtual ~ModulePass();
};
@@ -257,9 +253,9 @@ public:
///
bool runOnModule(Module &M) { return false; }
explicit ImmutablePass(intptr_t pid, bool AP = false) : ModulePass(pid, AP) {}
explicit ImmutablePass(const void *pid, bool AP = false)
: ModulePass(pid, AP) {}
explicit ImmutablePass(intptr_t pid) : ModulePass(pid) {}
explicit ImmutablePass(const void *pid)
: ModulePass(pid) {}
// Force out-of-line virtual method.
virtual ~ImmutablePass();
@@ -276,8 +272,8 @@ public:
///
class FunctionPass : public Pass {
public:
explicit FunctionPass(intptr_t pid, bool AP = false) : Pass(pid, AP) {}
explicit FunctionPass(const void *pid, bool AP = false) : Pass(pid, AP) {}
explicit FunctionPass(intptr_t pid) : Pass(pid) {}
explicit FunctionPass(const void *pid) : Pass(pid) {}
/// doInitialization - Virtual method overridden by subclasses to do
/// any necessary per-module initialization.
@@ -328,8 +324,8 @@ public:
///
class BasicBlockPass : public Pass {
public:
explicit BasicBlockPass(intptr_t pid, bool AP = false) : Pass(pid, AP) {}
explicit BasicBlockPass(const void *pid, bool AP = false) : Pass(pid, AP) {}
explicit BasicBlockPass(intptr_t pid) : Pass(pid) {}
explicit BasicBlockPass(const void *pid) : Pass(pid) {}
/// doInitialization - Virtual method overridden by subclasses to do
/// any necessary per-module initialization.