aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/ExecutionEngine/ExecutionEngine.h3
-rw-r--r--lib/ExecutionEngine/Interpreter/Interpreter.cpp1
-rw-r--r--lib/ExecutionEngine/JIT/JIT.cpp1
3 files changed, 3 insertions, 2 deletions
diff --git a/include/llvm/ExecutionEngine/ExecutionEngine.h b/include/llvm/ExecutionEngine/ExecutionEngine.h
index 032d9fe309..0435df9e44 100644
--- a/include/llvm/ExecutionEngine/ExecutionEngine.h
+++ b/include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -30,7 +30,6 @@ protected:
void setTargetData(const TargetData &td) {
TD = &td;
- emitGlobals();
}
public:
ExecutionEngine(Module *M) : CurMod(*M) {
@@ -81,7 +80,7 @@ public:
//
virtual void *getPointerToFunction(const Function *F) = 0;
-private:
+protected:
void emitGlobals();
public: // FIXME: protected: // API shared among subclasses
diff --git a/lib/ExecutionEngine/Interpreter/Interpreter.cpp b/lib/ExecutionEngine/Interpreter/Interpreter.cpp
index 1c41841b81..4582a6f26d 100644
--- a/lib/ExecutionEngine/Interpreter/Interpreter.cpp
+++ b/lib/ExecutionEngine/Interpreter/Interpreter.cpp
@@ -34,6 +34,7 @@ Interpreter::Interpreter(Module *M, unsigned Config,
initializeExecutionEngine();
initializeExternalFunctions();
CW.setModule(M); // Update Writer
+ emitGlobals();
}
/// run - Start execution with the specified function and arguments.
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp
index b2b56a63e5..39f305e127 100644
--- a/lib/ExecutionEngine/JIT/JIT.cpp
+++ b/lib/ExecutionEngine/JIT/JIT.cpp
@@ -33,6 +33,7 @@ VM::VM(Module *M, TargetMachine *tm) : ExecutionEngine(M), TM(*tm) {
MCE = createEmitter(*this); // Initialize MCE
setupPassManager();
registerCallback();
+ emitGlobals();
}
int VM::run(const std::string &FnName, const std::vector<std::string> &Args) {