1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00

[Orc][LLJIT] Re-apply 298e183e813 (use JITLink for LLJIT where supported).

Patch d9220b580b3 fixed the underlying issue that casued 298e183e813 to fail.
This commit is contained in:
Lang Hames 2019-12-19 20:42:26 -08:00
parent f1bb810112
commit 80fb117833
2 changed files with 13 additions and 3 deletions

View File

@ -79,12 +79,18 @@ public:
return *this;
}
/// Get the relocation model.
const Optional<Reloc::Model> &getRelocationModel() const { return RM; }
/// Set the code model.
JITTargetMachineBuilder &setCodeModel(Optional<CodeModel::Model> CM) {
this->CM = std::move(CM);
return *this;
}
/// Get the code model.
const Optional<CodeModel::Model> &getCodeModel() const { return CM; }
/// Set the LLVM CodeGen optimization level.
JITTargetMachineBuilder &setCodeGenOptLevel(CodeGenOpt::Level OptLevel) {
this->OptLevel = OptLevel;

View File

@ -24,11 +24,15 @@ Error LLJITBuilderState::prepareForConstruction() {
JTMB = std::move(*JTMBOrErr);
else
return JTMBOrErr.takeError();
}
// If the client didn't configure any linker options then auto-configure the
// JIT linker.
if (!CreateObjectLinkingLayer && JTMB->getCodeModel() == None &&
JTMB->getRelocationModel() == None) {
// If no ObjectLinkingLayer creator was set and the target supports JITLink
// then configure for JITLink.
auto &TT = JTMB->getTargetTriple();
if (!CreateObjectLinkingLayer && TT.isOSBinFormatMachO() &&
if (TT.isOSBinFormatMachO() &&
(TT.getArch() == Triple::aarch64 || TT.getArch() == Triple::x86_64)) {
JTMB->setRelocationModel(Reloc::PIC_);