[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