[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:35 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();
+
+    std::unique_ptr<llvm::orc::ObjectLayer> objectLayer;
+
+    if (useJITLink) {
+      // JITLink path
+      objectLayer = std::make_unique<llvm::orc::ObjectLinkingLayer>(session);
+
+      LLVM_DEBUG(llvm::dbgs() << "Using ObjectLinkingLayer (JITLink)\n");
+
----------------
joker-eph wrote:

```suggestion
      LDBG() << "Using ObjectLinkingLayer (JITLink)";
      objectLayer = std::make_unique<llvm::orc::ObjectLinkingLayer>(session);
```

Nit: use LDBG preferably for debug log.

https://github.com/llvm/llvm-project/pull/196023


More information about the Mlir-commits mailing list