1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00

Make sure that globals are emitted AFTER the passmanager is set up for the JIT,

because the globals may refer to functions that need to be compiled!

llvm-svn: 6105
This commit is contained in:
Chris Lattner 2003-05-12 02:14:34 +00:00
parent 5b04a3903d
commit 46f2fc75da
3 changed files with 3 additions and 2 deletions

View File

@ -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

View File

@ -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.

View File

@ -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) {