diff options
author | Brian Gaeke <gaeke@uiuc.edu> | 2003-09-03 20:34:19 +0000 |
---|---|---|
committer | Brian Gaeke <gaeke@uiuc.edu> | 2003-09-03 20:34:19 +0000 |
commit | 4bd3bd5b5aad9cb32f1cd268cfa5e8b8df0ec368 (patch) | |
tree | 6ae0302c5ea265fd5966fb1f3e1b046fd3afb3e1 /llvm/lib/ExecutionEngine/ExecutionEngine.cpp | |
parent | 54d85e389fcb019e4e910a986eff5b8f71aa06e6 (diff) | |
download | bcm5719-llvm-4bd3bd5b5aad9cb32f1cd268cfa5e8b8df0ec368.tar.gz bcm5719-llvm-4bd3bd5b5aad9cb32f1cd268cfa5e8b8df0ec368.zip |
ExecutionEngine.cpp: Move execution engine creation stuff into a new
static method here.
Remove some extra blank lines.
ExecutionEngine.h: Add its prototype.
lli.cpp: Call it.
Make creation method for each type of EE into a static method of its
own subclass.
Interpreter/Interpreter.cpp: ExecutionEngine::createInterpreter -->
Interpreter::create
Interpreter/Interpreter.h: Likewise.
JIT/JIT.cpp: ExecutionEngine::createJIT --> VM::create
JIT/VM.h: Likewise.
llvm-svn: 8343
Diffstat (limited to 'llvm/lib/ExecutionEngine/ExecutionEngine.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/ExecutionEngine.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp index 89d9e162892..5691a248a06 100644 --- a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp @@ -15,9 +15,25 @@ #include "Support/Debug.h" #include "Support/Statistic.h" #include "Config/dlfcn.h" +#include "JIT/VM.h" +#include "Interpreter/Interpreter.h" Statistic<> NumInitBytes("lli", "Number of bytes of global vars initialized"); +ExecutionEngine *ExecutionEngine::create (Module *M, bool ForceInterpreter, + bool DebugMode, bool TraceMode) { + ExecutionEngine *EE = 0; + + // If there is nothing that is forcing us to use the interpreter, make a JIT. + if (!ForceInterpreter && !DebugMode && !TraceMode) + EE = VM::create(M); + + // If we can't make a JIT, make an interpreter instead. + if (EE == 0) + EE = Interpreter::create(M, DebugMode, TraceMode); + return EE; +} + // getPointerToGlobal - This returns the address of the specified global // value. This may involve code generation if it's a function. // @@ -29,7 +45,6 @@ void *ExecutionEngine::getPointerToGlobal(const GlobalValue *GV) { return GlobalAddress[GV]; } - GenericValue ExecutionEngine::getConstantValue(const Constant *C) { GenericValue Result; @@ -259,7 +274,6 @@ GenericValue ExecutionEngine::LoadValueFromMemory(GenericValue *Ptr, return Result; } - // InitializeMemory - Recursive function to apply a Constant value into the // specified memory location... // |