[llvm] [ORC] Use lookupAndApply for EPCGenericRTDyldMemoryManager (PR #223377)

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 14 04:50:38 PDT 2026


https://github.com/lhames created https://github.com/llvm/llvm-project/pull/223377

EPCGenericRTDyldMemoryManager::CreateWithDefaultBootstrapSymbols resolved its memory-manager and EH-frame symbol addresses with EPC.getBootstrapSymbols. For consistency, switch to lookupAndApply/recordAddr on the bootstrap JITDylib instead.

>From 497622b75e8d4ee3eb0dafe642c8bcfa2bbfe54f Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Mon, 14 Sep 2026 17:26:25 +1000
Subject: [PATCH] [ORC] Use lookupAndApply for EPCGenericRTDyldMemoryManager

EPCGenericRTDyldMemoryManager::CreateWithDefaultBootstrapSymbols
resolved its memory-manager and EH-frame symbol addresses with
EPC.getBootstrapSymbols. For consistency, switch to
lookupAndApply/recordAddr on the bootstrap JITDylib instead.
---
 .../Orc/EPCGenericRTDyldMemoryManager.cpp     | 20 +++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/llvm/lib/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.cpp b/llvm/lib/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.cpp
index e66b80d037bee..28566d309b812 100644
--- a/llvm/lib/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.h"
+#include "llvm/ExecutionEngine/Orc/LookupAndApply.h"
 #include "llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h"
 #include "llvm/ExecutionEngine/Orc/Shared/SPSCI/SimpleNativeMemoryMapSPSCI.h"
 #include "llvm/Support/Alignment.h"
@@ -23,14 +24,17 @@ Expected<std::unique_ptr<EPCGenericRTDyldMemoryManager>>
 EPCGenericRTDyldMemoryManager::CreateWithDefaultBootstrapSymbols(
     ExecutorProcessControl &EPC) {
   SymbolAddrs SAs;
-  if (auto Err = EPC.getBootstrapSymbols(
-          {{SAs.Instance, rt::sps_ci::SimpleNativeMemoryMapInstanceName},
-           {SAs.Reserve, rt::sps_ci::MemMgrReserve::Name},
-           {SAs.Initialize, rt::sps_ci::MemMgrInitialize::Name},
-           {SAs.Release, rt::sps_ci::MemMgrRelease::Name},
-           {SAs.RegisterEHFrame, rt::RegisterEHFrameSectionAllocActionName},
-           {SAs.DeregisterEHFrame,
-            rt::DeregisterEHFrameSectionAllocActionName}}))
+  if (auto Err = lookupAndApply(
+          EPC.getExecutionSession().getBootstrapJITDylib(),
+          {recordAddr(rt::sps_ci::SimpleNativeMemoryMapInstanceName,
+                      &SAs.Instance),
+           recordAddr(rt::sps_ci::MemMgrReserve::Name, &SAs.Reserve),
+           recordAddr(rt::sps_ci::MemMgrInitialize::Name, &SAs.Initialize),
+           recordAddr(rt::sps_ci::MemMgrRelease::Name, &SAs.Release),
+           recordAddr(rt::RegisterEHFrameSectionAllocActionName,
+                      &SAs.RegisterEHFrame),
+           recordAddr(rt::DeregisterEHFrameSectionAllocActionName,
+                      &SAs.DeregisterEHFrame)}))
     return std::move(Err);
   return std::make_unique<EPCGenericRTDyldMemoryManager>(EPC, std::move(SAs));
 }



More information about the llvm-commits mailing list