mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-19 04:29:21 +00:00
Enabling incremental bytecode loading in the JIT:
* ExecutionEngine and VM can be constructed using a ModuleProvider. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9124 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b6c54ed8f5
commit
7b2b40f9ac
@ -22,22 +22,23 @@
|
||||
Statistic<> NumInitBytes("lli", "Number of bytes of global vars initialized");
|
||||
|
||||
ExecutionEngine::~ExecutionEngine() {
|
||||
delete &CurMod;
|
||||
delete MP;
|
||||
}
|
||||
|
||||
/// FIXME: document
|
||||
///
|
||||
ExecutionEngine *ExecutionEngine::create(Module *M, bool ForceInterpreter,
|
||||
ExecutionEngine *ExecutionEngine::create(ModuleProvider *MP,
|
||||
bool ForceInterpreter,
|
||||
bool TraceMode) {
|
||||
ExecutionEngine *EE = 0;
|
||||
|
||||
// If there is nothing that is forcing us to use the interpreter, make a JIT.
|
||||
if (!ForceInterpreter && !TraceMode)
|
||||
EE = VM::create(M);
|
||||
EE = VM::create(MP);
|
||||
|
||||
// If we can't make a JIT, make an interpreter instead.
|
||||
if (EE == 0)
|
||||
EE = Interpreter::create(M, TraceMode);
|
||||
EE = Interpreter::create(MP->releaseModule(), TraceMode);
|
||||
return EE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user