diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/ExecutionEngine.cpp')
| -rw-r--r-- | llvm/lib/ExecutionEngine/ExecutionEngine.cpp | 18 | 
1 files changed, 17 insertions, 1 deletions
diff --git a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp index fc5cb92..91d68fb 100644 --- a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp @@ -46,6 +46,16 @@ ExecutionEngine *(*ExecutionEngine::JITCtor)(    StringRef MArch,    StringRef MCPU,    const SmallVectorImpl<std::string>& MAttrs) = 0; +ExecutionEngine *(*ExecutionEngine::MCJITCtor)( +  Module *M, +  std::string *ErrorStr, +  JITMemoryManager *JMM, +  CodeGenOpt::Level OptLevel, +  bool GVsWithCode, +  CodeModel::Model CMM, +  StringRef MArch, +  StringRef MCPU, +  const SmallVectorImpl<std::string>& MAttrs) = 0;  ExecutionEngine *(*ExecutionEngine::InterpCtor)(Module *M,                                                  std::string *ErrorStr) = 0; @@ -430,7 +440,13 @@ ExecutionEngine *EngineBuilder::create() {    // Unless the interpreter was explicitly selected or the JIT is not linked,    // try making a JIT.    if (WhichEngine & EngineKind::JIT) { -    if (ExecutionEngine::JITCtor) { +    if (UseMCJIT && ExecutionEngine::MCJITCtor) { +      ExecutionEngine *EE = +        ExecutionEngine::MCJITCtor(M, ErrorStr, JMM, OptLevel, +                                   AllocateGVsWithCode, CMModel, +                                   MArch, MCPU, MAttrs); +      if (EE) return EE; +    } else if (ExecutionEngine::JITCtor) {        ExecutionEngine *EE =          ExecutionEngine::JITCtor(M, ErrorStr, JMM, OptLevel,                                   AllocateGVsWithCode, CMModel,  | 
