[Mlir-commits] [mlir] [mlir][ExecutionEngine] Use JITLink for RISC-V (and AArch64) and fix … (PR #196023)
Mehdi Amini
llvmlistbot at llvm.org
Wed May 6 01:33:01 PDT 2026
================
@@ -316,27 +318,57 @@ ExecutionEngine::create(Operation *m, const ExecutionEngineOptions &options,
&IgnoredMemMgr) {
// Needed to respect AArch64 ABI requirements on the distance between
// TEXT and GOT sections.
- bool reserveAlloc = llvmModule->getTargetTriple().isAArch64();
- auto objectLayer = std::make_unique<RTDyldObjectLinkingLayer>(
- session, [sectionMemoryMapper = options.sectionMemoryMapper,
- reserveAlloc](const MemoryBuffer &) {
- return std::make_unique<SectionMemoryManager>(sectionMemoryMapper,
- reserveAlloc);
- });
-
- // Register JIT event listeners if they are enabled.
- if (engine->gdbListener)
- objectLayer->registerJITEventListener(*engine->gdbListener);
- if (engine->perfListener)
- objectLayer->registerJITEventListener(*engine->perfListener);
+
+ // Check if we should use ObjectLinkingLayer (JITLink)
+ // JITLink supports modern architectures like RISC-V, AArch64
+ // RuntimeDyld is older and provides better compatibility with legacy
+ // platforms
+
+ // Decide which layer to use
+ bool useJITLink = llvmModule->getTargetTriple().isAArch64() ||
+ llvmModule->getTargetTriple().isRISCV();
----------------
joker-eph wrote:
Why don't we default to JITLink and use RuntimeDyld only where JITLink isn't supported?
Isn't X86 supported by JITLink?
https://github.com/llvm/llvm-project/pull/196023
More information about the Mlir-commits
mailing list