[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