diff options
Diffstat (limited to 'include/llvm/Pass.h')
-rw-r--r-- | include/llvm/Pass.h | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/include/llvm/Pass.h b/include/llvm/Pass.h index 58bdfc010a..07355da2d1 100644 --- a/include/llvm/Pass.h +++ b/include/llvm/Pass.h @@ -73,7 +73,7 @@ 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,10 +82,14 @@ class Pass { void operator=(const Pass&); // DO NOT IMPLEMENT Pass(const Pass &); // DO NOT IMPLEMENT public: - explicit Pass(intptr_t pid) : Resolver(0), PassID(pid) {} - explicit Pass(const void *pid) : Resolver(0), PassID((intptr_t)pid) {} + 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) {} 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. @@ -130,11 +134,6 @@ public: return Resolver; } - /// isAnalysis - Return true if this pass is implementing an analysis pass. - virtual bool isAnalysis() const { - return false; - } - /// getAnalysisUsage - This function should be overriden by passes that need /// analysis information to do their job. If a pass specifies that it uses a /// particular analysis result to this function, it can then use the @@ -232,8 +231,8 @@ public: return PMT_ModulePassManager; } - explicit ModulePass(intptr_t pid) : Pass(pid) {} - explicit ModulePass(const void *pid) : Pass(pid) {} + explicit ModulePass(intptr_t pid, bool AP = false) : Pass(pid, AP) {} + explicit ModulePass(const void *pid, bool AP = false) : Pass(pid, AP) {} // Force out-of-line virtual method. virtual ~ModulePass(); }; @@ -258,8 +257,9 @@ public: /// bool runOnModule(Module &M) { return false; } - explicit ImmutablePass(intptr_t pid) : ModulePass(pid) {} - explicit ImmutablePass(const void *pid) : ModulePass(pid) {} + explicit ImmutablePass(intptr_t pid, bool AP = false) : ModulePass(pid, AP) {} + explicit ImmutablePass(const void *pid, bool AP = false) + : ModulePass(pid, AP) {} // Force out-of-line virtual method. virtual ~ImmutablePass(); @@ -276,8 +276,8 @@ public: /// class FunctionPass : public Pass { public: - explicit FunctionPass(intptr_t pid) : Pass(pid) {} - explicit FunctionPass(const void *pid) : Pass(pid) {} + explicit FunctionPass(intptr_t pid, bool AP = false) : Pass(pid, AP) {} + explicit FunctionPass(const void *pid, bool AP = false) : Pass(pid, AP) {} /// doInitialization - Virtual method overridden by subclasses to do /// any necessary per-module initialization. @@ -328,8 +328,8 @@ public: /// class BasicBlockPass : public Pass { public: - explicit BasicBlockPass(intptr_t pid) : Pass(pid) {} - explicit BasicBlockPass(const void *pid) : Pass(pid) {} + explicit BasicBlockPass(intptr_t pid, bool AP = false) : Pass(pid, AP) {} + explicit BasicBlockPass(const void *pid, bool AP = false) : Pass(pid, AP) {} /// doInitialization - Virtual method overridden by subclasses to do /// any necessary per-module initialization. |