Reinstate "Nuke the old JIT."

Approved by Jim Grosbach, Lang Hames, Rafael Espindola.

This reinstates commits r215111, 215115, 215116, 215117, 215136.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216982 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher
2014-09-02 22:28:02 +00:00
parent 4437658aff
commit d5dd8ce2a5
258 changed files with 184 additions and 12590 deletions

View File

@ -48,12 +48,6 @@ void ObjectCache::anchor() {}
void ObjectBuffer::anchor() {}
void ObjectBufferStream::anchor() {}
ExecutionEngine *(*ExecutionEngine::JITCtor)(
std::unique_ptr<Module> M,
std::string *ErrorStr,
JITMemoryManager *JMM,
bool GVsWithCode,
TargetMachine *TM) = nullptr;
ExecutionEngine *(*ExecutionEngine::MCJITCtor)(
std::unique_ptr<Module >M,
std::string *ErrorStr,
@ -411,10 +405,8 @@ void EngineBuilder::InitEngine() {
MCJMM = nullptr;
JMM = nullptr;
Options = TargetOptions();
AllocateGVsWithCode = false;
RelocModel = Reloc::Default;
CMModel = CodeModel::JITDefault;
UseMCJIT = false;
// IR module verification is enabled by default in debug builds, and disabled
// by default in release builds.
@ -447,14 +439,6 @@ ExecutionEngine *EngineBuilder::create(TargetMachine *TM) {
return nullptr;
}
}
if (MCJMM && ! UseMCJIT) {
if (ErrorStr)
*ErrorStr =
"Cannot create a legacy JIT with a runtime dyld memory "
"manager.";
return nullptr;
}
// Unless the interpreter was explicitly selected or the JIT is not linked,
// try making a JIT.
@ -467,13 +451,9 @@ ExecutionEngine *EngineBuilder::create(TargetMachine *TM) {
}
ExecutionEngine *EE = nullptr;
if (UseMCJIT && ExecutionEngine::MCJITCtor)
if (ExecutionEngine::MCJITCtor)
EE = ExecutionEngine::MCJITCtor(std::move(M), ErrorStr,
MCJMM ? MCJMM : JMM, TheTM.release());
else if (ExecutionEngine::JITCtor)
EE = ExecutionEngine::JITCtor(std::move(M), ErrorStr, JMM,
AllocateGVsWithCode, TheTM.release());
if (EE) {
EE->setVerifyModules(VerifyModules);
return EE;
@ -490,8 +470,7 @@ ExecutionEngine *EngineBuilder::create(TargetMachine *TM) {
return nullptr;
}
if ((WhichEngine & EngineKind::JIT) && !ExecutionEngine::JITCtor &&
!ExecutionEngine::MCJITCtor) {
if ((WhichEngine & EngineKind::JIT) && !ExecutionEngine::MCJITCtor) {
if (ErrorStr)
*ErrorStr = "JIT has not been linked in.";
}
@ -837,9 +816,6 @@ GenericValue ExecutionEngine::getConstantValue(const Constant *C) {
Result = PTOGV(getPointerToFunctionOrStub(const_cast<Function*>(F)));
else if (const GlobalVariable *GV = dyn_cast<GlobalVariable>(C))
Result = PTOGV(getOrEmitGlobalVariable(const_cast<GlobalVariable*>(GV)));
else if (const BlockAddress *BA = dyn_cast<BlockAddress>(C))
Result = PTOGV(getPointerToBasicBlock(const_cast<BasicBlock*>(
BA->getBasicBlock())));
else
llvm_unreachable("Unknown constant pointer type!");
break;