diff options
author | Owen Anderson <resistor@mac.com> | 2009-07-02 20:23:41 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2009-07-02 20:23:41 +0000 |
commit | 7c5c11f87d56bb59521a55f7e6f0ddcf732e6304 (patch) | |
tree | 6cb4c7b10cf70a36a4e087c13bed902573435b9b /llvm | |
parent | 6141511621323b4bd76940c7dcaf7abc4fdd0a79 (diff) | |
download | bcm5719-llvm-7c5c11f87d56bb59521a55f7e6f0ddcf732e6304.tar.gz bcm5719-llvm-7c5c11f87d56bb59521a55f7e6f0ddcf732e6304.zip |
Make the current LLVMContext available to passes.
llvm-svn: 74724
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/Pass.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/llvm/include/llvm/Pass.h b/llvm/include/llvm/Pass.h index 923de658c3b..eea99e028dd 100644 --- a/llvm/include/llvm/Pass.h +++ b/llvm/include/llvm/Pass.h @@ -29,6 +29,7 @@ #ifndef LLVM_PASS_H #define LLVM_PASS_H +#include "llvm/Module.h" #include "llvm/Support/DataTypes.h" #include "llvm/Support/Streams.h" #include <cassert> @@ -47,6 +48,7 @@ class ImmutablePass; class PMStack; class AnalysisResolver; class PMDataManager; +class LLVMContext; // AnalysisID - Use the PassInfo to identify a pass... typedef const PassInfo* AnalysisID; @@ -75,6 +77,10 @@ class Pass { void operator=(const Pass&); // DO NOT IMPLEMENT Pass(const Pass &); // DO NOT IMPLEMENT + +protected: + LLVMContext* Context; + public: explicit Pass(intptr_t pid) : Resolver(0), PassID(pid) { assert(pid && "pid cannot be 0"); @@ -275,7 +281,10 @@ public: /// doInitialization - Virtual method overridden by subclasses to do /// any necessary per-module initialization. /// - virtual bool doInitialization(Module &) { return false; } + virtual bool doInitialization(Module &M) { + Context = &M.getContext(); + return false; + } /// runOnFunction - Virtual method overriden by subclasses to do the /// per-function processing of the pass. @@ -327,7 +336,10 @@ public: /// doInitialization - Virtual method overridden by subclasses to do /// any necessary per-module initialization. /// - virtual bool doInitialization(Module &) { return false; } + virtual bool doInitialization(Module &M) { + Context = &M.getContext(); + return false; + } /// doInitialization - Virtual method overridden by BasicBlockPass subclasses /// to do any necessary per-function initialization. |