[llvm-commits] [llvm] r74724 - /llvm/trunk/include/llvm/Pass.h
Owen Anderson
resistor at mac.com
Thu Jul 2 13:23:50 PDT 2009
Author: resistor
Date: Thu Jul 2 15:23:41 2009
New Revision: 74724
URL: http://llvm.org/viewvc/llvm-project?rev=74724&view=rev
Log:
Make the current LLVMContext available to passes.
Modified:
llvm/trunk/include/llvm/Pass.h
Modified: llvm/trunk/include/llvm/Pass.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Pass.h?rev=74724&r1=74723&r2=74724&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Pass.h (original)
+++ llvm/trunk/include/llvm/Pass.h Thu Jul 2 15:23:41 2009
@@ -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 PMStack;
class AnalysisResolver;
class PMDataManager;
+class LLVMContext;
// AnalysisID - Use the PassInfo to identify a pass...
typedef const PassInfo* AnalysisID;
@@ -75,6 +77,10 @@
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 @@
/// 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 @@
/// 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.
More information about the llvm-commits
mailing list