From: Lang Hames Date: Sun, 5 Feb 2023 03:36:40 +0000 (+0000) Subject: [ORC] Use JITLink as the default linker for LLJIT on Linux/arm64. X-Git-Tag: upstream/17.0.6~18556 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6747fc07d1aa94e22622e278e5a02ba70675ac9b;p=platform%2Fupstream%2Fllvm.git [ORC] Use JITLink as the default linker for LLJIT on Linux/arm64. Also updates the OrcCAPIsTest unit test to enable the C API tests on Linux. --- diff --git a/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp b/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp index bc84988..a9cc668 100644 --- a/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp +++ b/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp @@ -715,11 +715,22 @@ Error LLJITBuilderState::prepareForConstruction() { // JIT linker. if (!CreateObjectLinkingLayer) { auto &TT = JTMB->getTargetTriple(); - if (TT.getArch() == Triple::riscv64 || - TT.getArch() == Triple::loongarch64 || - (TT.isOSBinFormatMachO() && - (TT.getArch() == Triple::aarch64 || TT.getArch() == Triple::x86_64))) { - + bool UseJITLink = false; + switch (TT.getArch()) { + case Triple::riscv64: + case Triple::loongarch64: + UseJITLink = true; + break; + case Triple::aarch64: + UseJITLink = !TT.isOSBinFormatCOFF(); + break; + case Triple::x86_64: + UseJITLink = TT.isOSBinFormatMachO(); + break; + default: + break; + } + if (UseJITLink) { JTMB->setRelocationModel(Reloc::PIC_); JTMB->setCodeModel(CodeModel::Small); CreateObjectLinkingLayer = diff --git a/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt b/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt index 41c297b..7df4213 100644 --- a/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt +++ b/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt @@ -46,3 +46,5 @@ target_link_libraries(OrcJITTests PRIVATE ${ORC_JIT_TEST_LIBS}) set_property(TARGET OrcJITTests PROPERTY FOLDER "Tests/UnitTests/ExecutionTests") + +export_executable_symbols(OrcJITTests)