From b6c54ed8f50a351989993a5ef88507abc6d63e2d Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Tue, 14 Oct 2003 21:35:52 +0000 Subject: [PATCH] Enabling incremental bytecode loading in the JIT: * ExecutionEngine can be constructed from a ModuleProvider * Alphabetized order of forward-declared classes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9123 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../llvm/ExecutionEngine/ExecutionEngine.h | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/include/llvm/ExecutionEngine/ExecutionEngine.h b/include/llvm/ExecutionEngine/ExecutionEngine.h index 98d9daedac0..03fc6d6a944 100644 --- a/include/llvm/ExecutionEngine/ExecutionEngine.h +++ b/include/llvm/ExecutionEngine/ExecutionEngine.h @@ -8,23 +8,25 @@ #ifndef EXECUTION_ENGINE_H #define EXECUTION_ENGINE_H +#include "llvm/ModuleProvider.h" #include #include #include #include class Constant; -class Type; -class GlobalValue; class Function; +union GenericValue; +class GlobalValue; class Module; class TargetData; -union GenericValue; +class Type; class ExecutionEngine { Module &CurMod; const TargetData *TD; protected: + ModuleProvider *MP; // GlobalAddress - A mapping between LLVM global values and their actualized // version... std::map GlobalAddress; @@ -32,9 +34,13 @@ protected: void setTargetData(const TargetData &td) { TD = &td; } + public: - ExecutionEngine(Module *M) : CurMod(*M) { - assert(M && "Module is null?"); + ExecutionEngine(ModuleProvider *P) : CurMod(*(P->getModule())), MP(P) { + assert(P && "ModuleProvider is null?"); + } + ExecutionEngine(Module *M) : CurMod(*M), MP(0) { + assert(M && "Module is null?"); } virtual ~ExecutionEngine(); @@ -47,8 +53,8 @@ public: virtual GenericValue run(Function *F, const std::vector &ArgValues) = 0; - static ExecutionEngine *create (Module *M, bool ForceInterpreter, - bool TraceMode); + static ExecutionEngine *create(ModuleProvider *MP, bool ForceInterpreter, + bool TraceMode); void addGlobalMapping(const Function *F, void *Addr) { void *&CurVal = GlobalAddress[(const GlobalValue*)F]; -- 2.34.1