mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-17 04:24:00 +00:00
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:
@ -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;
|
||||
|
Reference in New Issue
Block a user