mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +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:
@@ -7,7 +7,6 @@ set(LLVM_LINK_COMPONENTS
|
||||
IRReader
|
||||
Instrumentation
|
||||
Interpreter
|
||||
JIT
|
||||
MC
|
||||
MCJIT
|
||||
Object
|
||||
|
@@ -22,4 +22,4 @@ subdirectories = ChildTarget
|
||||
type = Tool
|
||||
name = lli
|
||||
parent = Tools
|
||||
required_libraries = AsmParser BitReader IRReader Instrumentation Interpreter JIT MCJIT NativeCodeGen SelectionDAG Native
|
||||
required_libraries = AsmParser BitReader IRReader Instrumentation Interpreter MCJIT NativeCodeGen SelectionDAG Native
|
||||
|
@@ -14,7 +14,7 @@ PARALLEL_DIRS := ChildTarget
|
||||
|
||||
include $(LEVEL)/Makefile.config
|
||||
|
||||
LINK_COMPONENTS := mcjit jit instrumentation interpreter nativecodegen bitreader asmparser irreader selectiondag native
|
||||
LINK_COMPONENTS := mcjit instrumentation interpreter nativecodegen bitreader asmparser irreader selectiondag native
|
||||
|
||||
# If Intel JIT Events support is confiured, link against the LLVM Intel JIT
|
||||
# Events interface library
|
||||
|
@@ -22,7 +22,6 @@
|
||||
#include "llvm/CodeGen/LinkAllCodegenComponents.h"
|
||||
#include "llvm/ExecutionEngine/GenericValue.h"
|
||||
#include "llvm/ExecutionEngine/Interpreter.h"
|
||||
#include "llvm/ExecutionEngine/JIT.h"
|
||||
#include "llvm/ExecutionEngine/JITEventListener.h"
|
||||
#include "llvm/ExecutionEngine/JITMemoryManager.h"
|
||||
#include "llvm/ExecutionEngine/MCJIT.h"
|
||||
@@ -76,10 +75,6 @@ namespace {
|
||||
cl::desc("Force interpretation: disable JIT"),
|
||||
cl::init(false));
|
||||
|
||||
cl::opt<bool> UseMCJIT(
|
||||
"use-mcjit", cl::desc("Enable use of the MC-based JIT (if available)"),
|
||||
cl::init(false));
|
||||
|
||||
cl::opt<bool> DebugIR(
|
||||
"debug-ir", cl::desc("Generate debug information to allow debugging IR."),
|
||||
cl::init(false));
|
||||
@@ -406,12 +401,9 @@ int main(int argc, char **argv, char * const *envp) {
|
||||
}
|
||||
|
||||
if (EnableCacheManager) {
|
||||
if (UseMCJIT) {
|
||||
std::string CacheName("file:");
|
||||
CacheName.append(InputFile);
|
||||
Mod->setModuleIdentifier(CacheName);
|
||||
} else
|
||||
errs() << "warning: -enable-cache-manager can only be used with MCJIT.";
|
||||
std::string CacheName("file:");
|
||||
CacheName.append(InputFile);
|
||||
Mod->setModuleIdentifier(CacheName);
|
||||
}
|
||||
|
||||
// If not jitting lazily, load the whole bitcode file eagerly too.
|
||||
@@ -424,12 +416,6 @@ int main(int argc, char **argv, char * const *envp) {
|
||||
}
|
||||
|
||||
if (DebugIR) {
|
||||
if (!UseMCJIT) {
|
||||
errs() << "warning: -debug-ir used without -use-mcjit. Only partial debug"
|
||||
<< " information will be emitted by the non-MC JIT engine. To see full"
|
||||
<< " source debug information, enable the flag '-use-mcjit'.\n";
|
||||
|
||||
}
|
||||
ModulePass *DebugIRPass = createDebugIRPass();
|
||||
DebugIRPass->runOnModule(*Mod);
|
||||
}
|
||||
@@ -452,8 +438,7 @@ int main(int argc, char **argv, char * const *envp) {
|
||||
|
||||
// Enable MCJIT if desired.
|
||||
RTDyldMemoryManager *RTDyldMM = nullptr;
|
||||
if (UseMCJIT && !ForceInterpreter) {
|
||||
builder.setUseMCJIT(true);
|
||||
if (!ForceInterpreter) {
|
||||
if (RemoteMCJIT)
|
||||
RTDyldMM = new RemoteMemoryManager();
|
||||
else
|
||||
@@ -518,12 +503,9 @@ int main(int argc, char **argv, char * const *envp) {
|
||||
return 1;
|
||||
}
|
||||
if (EnableCacheManager) {
|
||||
if (UseMCJIT) {
|
||||
std::string CacheName("file:");
|
||||
CacheName.append(ExtraModules[i]);
|
||||
XMod->setModuleIdentifier(CacheName);
|
||||
}
|
||||
// else, we already printed a warning above.
|
||||
std::string CacheName("file:");
|
||||
CacheName.append(ExtraModules[i]);
|
||||
XMod->setModuleIdentifier(CacheName);
|
||||
}
|
||||
EE->addModule(std::move(XMod));
|
||||
}
|
||||
@@ -618,20 +600,12 @@ int main(int argc, char **argv, char * const *envp) {
|
||||
NULL);
|
||||
|
||||
// Run static constructors.
|
||||
if (UseMCJIT && !ForceInterpreter) {
|
||||
if (!ForceInterpreter) {
|
||||
// Give MCJIT a chance to apply relocations and set page permissions.
|
||||
EE->finalizeObject();
|
||||
}
|
||||
EE->runStaticConstructorsDestructors(false);
|
||||
|
||||
if (!UseMCJIT && NoLazyCompilation) {
|
||||
for (Module::iterator I = Mod->begin(), E = Mod->end(); I != E; ++I) {
|
||||
Function *Fn = &*I;
|
||||
if (Fn != EntryFn && !Fn->isDeclaration())
|
||||
EE->getPointerToFunction(Fn);
|
||||
}
|
||||
}
|
||||
|
||||
// Trigger compilation separately so code regions that need to be
|
||||
// invalidated will be known.
|
||||
(void)EE->getPointerToFunction(EntryFn);
|
||||
|
Reference in New Issue
Block a user