summaryrefslogtreecommitdiffstats
path: root/llvm/examples
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/examples')
-rw-r--r--llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h12
-rw-r--r--llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h15
-rw-r--r--llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp21
3 files changed, 26 insertions, 22 deletions
diff --git a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h
index a7fa3afc470..020b72c2394 100644
--- a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h
+++ b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h
@@ -39,14 +39,17 @@ private:
MangleAndInterner Mangle;
ThreadSafeContext Ctx;
+ JITDylib &MainJD;
+
public:
KaleidoscopeJIT(JITTargetMachineBuilder JTMB, DataLayout DL)
: ObjectLayer(ES,
[]() { return std::make_unique<SectionMemoryManager>(); }),
CompileLayer(ES, ObjectLayer, ConcurrentIRCompiler(std::move(JTMB))),
DL(std::move(DL)), Mangle(ES, this->DL),
- Ctx(std::make_unique<LLVMContext>()) {
- ES.getMainJITDylib().addGenerator(
+ Ctx(std::make_unique<LLVMContext>()),
+ MainJD(ES.createJITDylib("<main>")) {
+ MainJD.addGenerator(
cantFail(DynamicLibrarySearchGenerator::GetForCurrentProcess(
DL.getGlobalPrefix())));
}
@@ -69,12 +72,11 @@ public:
LLVMContext &getContext() { return *Ctx.getContext(); }
Error addModule(std::unique_ptr<Module> M) {
- return CompileLayer.add(ES.getMainJITDylib(),
- ThreadSafeModule(std::move(M), Ctx));
+ return CompileLayer.add(MainJD, ThreadSafeModule(std::move(M), Ctx));
}
Expected<JITEvaluatedSymbol> lookup(StringRef Name) {
- return ES.lookup({&ES.getMainJITDylib()}, Mangle(Name.str()));
+ return ES.lookup({&MainJD}, Mangle(Name.str()));
}
};
diff --git a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h
index e9999efd37a..8037e58ae4f 100644
--- a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h
+++ b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h
@@ -45,15 +45,17 @@ private:
MangleAndInterner Mangle;
ThreadSafeContext Ctx;
+ JITDylib &MainJD;
+
public:
KaleidoscopeJIT(JITTargetMachineBuilder JTMB, DataLayout DL)
: ObjectLayer(ES,
[]() { return std::make_unique<SectionMemoryManager>(); }),
CompileLayer(ES, ObjectLayer, ConcurrentIRCompiler(std::move(JTMB))),
- OptimizeLayer(ES, CompileLayer, optimizeModule),
- DL(std::move(DL)), Mangle(ES, this->DL),
- Ctx(std::make_unique<LLVMContext>()) {
- ES.getMainJITDylib().addGenerator(
+ OptimizeLayer(ES, CompileLayer, optimizeModule), DL(std::move(DL)),
+ Mangle(ES, this->DL), Ctx(std::make_unique<LLVMContext>()),
+ MainJD(ES.createJITDylib("<main>")) {
+ MainJD.addGenerator(
cantFail(DynamicLibrarySearchGenerator::GetForCurrentProcess(
DL.getGlobalPrefix())));
}
@@ -76,12 +78,11 @@ public:
}
Error addModule(std::unique_ptr<Module> M) {
- return OptimizeLayer.add(ES.getMainJITDylib(),
- ThreadSafeModule(std::move(M), Ctx));
+ return OptimizeLayer.add(MainJD, ThreadSafeModule(std::move(M), Ctx));
}
Expected<JITEvaluatedSymbol> lookup(StringRef Name) {
- return ES.lookup({&ES.getMainJITDylib()}, Mangle(Name.str()));
+ return ES.lookup({&MainJD}, Mangle(Name.str()));
}
private:
diff --git a/llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp b/llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
index 5a0ad376bcd..f4cfb7403db 100644
--- a/llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
+++ b/llvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
@@ -76,12 +76,12 @@ public:
ExecutionSession &getES() { return *ES; }
- Error addModule(JITDylib &JD, ThreadSafeModule TSM) {
- return CODLayer.add(JD, std::move(TSM));
+ Error addModule(ThreadSafeModule TSM) {
+ return CODLayer.add(MainJD, std::move(TSM));
}
Expected<JITEvaluatedSymbol> lookup(StringRef UnmangledName) {
- return ES->lookup({&ES->getMainJITDylib()}, Mangle(UnmangledName));
+ return ES->lookup({&MainJD}, Mangle(UnmangledName));
}
~SpeculativeJIT() { CompileThreads.wait(); }
@@ -101,15 +101,15 @@ private:
std::unique_ptr<LazyCallThroughManager> LCTMgr,
IndirectStubsManagerBuilderFunction ISMBuilder,
std::unique_ptr<DynamicLibrarySearchGenerator> ProcessSymbolsGenerator)
- : ES(std::move(ES)), DL(std::move(DL)), LCTMgr(std::move(LCTMgr)),
+ : ES(std::move(ES)), DL(std::move(DL)),
+ MainJD(this->ES->createJITDylib("<main>")), LCTMgr(std::move(LCTMgr)),
CompileLayer(*this->ES, ObjLayer,
ConcurrentIRCompiler(std::move(JTMB))),
S(Imps, *this->ES),
SpeculateLayer(*this->ES, CompileLayer, S, Mangle, BlockFreqQuery()),
CODLayer(*this->ES, SpeculateLayer, *this->LCTMgr,
std::move(ISMBuilder)) {
- this->ES->getMainJITDylib().addGenerator(
- std::move(ProcessSymbolsGenerator));
+ MainJD.addGenerator(std::move(ProcessSymbolsGenerator));
this->CODLayer.setImplMap(&Imps);
this->ES->setDispatchMaterialization(
@@ -119,9 +119,9 @@ private:
auto Work = [SharedMU, &JD]() { SharedMU->doMaterialize(JD); };
CompileThreads.async(std::move(Work));
});
- ExitOnErr(S.addSpeculationRuntime(this->ES->getMainJITDylib(), Mangle));
+ ExitOnErr(S.addSpeculationRuntime(MainJD, Mangle));
LocalCXXRuntimeOverrides CXXRuntimeoverrides;
- ExitOnErr(CXXRuntimeoverrides.enable(this->ES->getMainJITDylib(), Mangle));
+ ExitOnErr(CXXRuntimeoverrides.enable(MainJD, Mangle));
}
static std::unique_ptr<SectionMemoryManager> createMemMgr() {
@@ -133,6 +133,8 @@ private:
MangleAndInterner Mangle{*ES, DL};
ThreadPool CompileThreads{NumThreads};
+ JITDylib &MainJD;
+
Triple TT;
std::unique_ptr<LazyCallThroughManager> LCTMgr;
IRCompileLayer CompileLayer;
@@ -172,8 +174,7 @@ int main(int argc, char *argv[]) {
return 1;
}
- ExitOnErr(SJ->addModule(SJ->getES().getMainJITDylib(),
- ThreadSafeModule(std::move(M), std::move(Ctx))));
+ ExitOnErr(SJ->addModule(ThreadSafeModule(std::move(M), std::move(Ctx))));
}
auto MainSym = ExitOnErr(SJ->lookup("main"));
OpenPOWER on IntegriCloud