Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Rename eh-frame registration functions to reflect their new status as…
… actions,

clang-format patch.
  • Loading branch information
Lang Hames committed Mar 11, 2025
commit f77ab84f02448a417527e0051fa76ab096d9e46e
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ class EHFrameRegistrationPlugin : public LinkGraphLinkingLayer::Plugin {
static Expected<std::unique_ptr<EHFrameRegistrationPlugin>>
Create(ExecutionSession &ES);

EHFrameRegistrationPlugin(ExecutionSession &ES, ExecutorAddr RegisterEHFrame,
EHFrameRegistrationPlugin(ExecutorAddr RegisterEHFrame,
ExecutorAddr DeregisterEHFrame)
: ES(ES), RegisterEHFrame(RegisterEHFrame),
DeregisterEHFrame(DeregisterEHFrame) {}
: RegisterEHFrame(RegisterEHFrame), DeregisterEHFrame(DeregisterEHFrame) {
}

void modifyPassConfig(MaterializationResponsibility &MR,
jitlink::LinkGraph &G,
Expand All @@ -46,7 +46,6 @@ class EHFrameRegistrationPlugin : public LinkGraphLinkingLayer::Plugin {
ResourceKey SrcKey) override {}

private:
ExecutionSession &ES;
ExecutorAddr RegisterEHFrame;
ExecutorAddr DeregisterEHFrame;
};
Expand Down
4 changes: 2 additions & 2 deletions llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ extern const char *MemoryWriteUInt64sWrapperName;
extern const char *MemoryWriteBuffersWrapperName;
extern const char *MemoryWritePointersWrapperName;

extern const char *RegisterEHFrameSectionWrapperName;
extern const char *DeregisterEHFrameSectionWrapperName;
extern const char *RegisterEHFrameSectionAllocActionName;
extern const char *DeregisterEHFrameSectionAllocActionName;

extern const char *RunAsMainWrapperName;
extern const char *RunAsVoidFunctionWrapperName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ Error deregisterEHFrameSection(const void *EHFrameSectionAddr,
} // end namespace llvm

extern "C" LLVM_ABI llvm::orc::shared::CWrapperFunctionResult
llvm_orc_registerEHFrameSectionWrapper(const char *Data, uint64_t Size);
llvm_orc_registerEHFrameSectionAllocAction(const char *Data, uint64_t Size);

extern "C" LLVM_ABI llvm::orc::shared::CWrapperFunctionResult
llvm_orc_deregisterEHFrameSectionWrapper(const char *Data, uint64_t Size);
llvm_orc_deregisterEHFrameSectionAllocAction(const char *Data, uint64_t Size);

#endif // LLVM_EXECUTIONENGINE_ORC_TARGETPROCESS_REGISTEREHFRAMES_H
14 changes: 7 additions & 7 deletions llvm/lib/ExecutionEngine/Orc/EHFrameRegistrationPlugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,17 @@ Expected<std::unique_ptr<EHFrameRegistrationPlugin>>
EHFrameRegistrationPlugin::Create(ExecutionSession &ES) {
// Lookup addresseses of the registration/deregistration functions in the
// bootstrap map.
ExecutorAddr RegisterEHFrameSectionWrapper;
ExecutorAddr DeregisterEHFrameSectionWrapper;
ExecutorAddr RegisterEHFrameSectionAllocAction;
ExecutorAddr DeregisterEHFrameSectionAllocAction;
if (auto Err = ES.getExecutorProcessControl().getBootstrapSymbols(
{{RegisterEHFrameSectionWrapper,
rt::RegisterEHFrameSectionWrapperName},
{DeregisterEHFrameSectionWrapper,
rt::DeregisterEHFrameSectionWrapperName}}))
{{RegisterEHFrameSectionAllocAction,
rt::RegisterEHFrameSectionAllocActionName},
{DeregisterEHFrameSectionAllocAction,
rt::DeregisterEHFrameSectionAllocActionName}}))
return std::move(Err);

return std::make_unique<EHFrameRegistrationPlugin>(
ES, RegisterEHFrameSectionWrapper, DeregisterEHFrameSectionWrapper);
RegisterEHFrameSectionAllocAction, DeregisterEHFrameSectionAllocAction);
}

void EHFrameRegistrationPlugin::modifyPassConfig(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ EPCGenericRTDyldMemoryManager::CreateWithDefaultBootstrapSymbols(
{SAs.Finalize, rt::SimpleExecutorMemoryManagerFinalizeWrapperName},
{SAs.Deallocate,
rt::SimpleExecutorMemoryManagerDeallocateWrapperName},
{SAs.RegisterEHFrame, rt::RegisterEHFrameSectionWrapperName},
{SAs.DeregisterEHFrame, rt::DeregisterEHFrameSectionWrapperName}}))
{SAs.RegisterEHFrame, rt::RegisterEHFrameSectionAllocActionName},
{SAs.DeregisterEHFrame,
rt::DeregisterEHFrameSectionAllocActionName}}))
return std::move(Err);
return std::make_unique<EPCGenericRTDyldMemoryManager>(EPC, std::move(SAs));
}
Expand Down
4 changes: 2 additions & 2 deletions llvm/lib/ExecutionEngine/Orc/LLJIT.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1340,8 +1340,8 @@ LLLazyJIT::LLLazyJIT(LLLazyJITBuilderState &S, Error &Err) : LLJIT(S, Err) {
// In-process LLJIT uses eh-frame section wrappers via EPC, so we need to force
// them to be linked in.
LLVM_ATTRIBUTE_USED void linkComponents() {
errs() << (void *)&llvm_orc_registerEHFrameSectionWrapper
<< (void *)&llvm_orc_deregisterEHFrameSectionWrapper;
errs() << (void *)&llvm_orc_registerEHFrameSectionAllocAction
<< (void *)&llvm_orc_deregisterEHFrameSectionAllocAction;
}

} // End namespace orc.
Expand Down
8 changes: 4 additions & 4 deletions llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ const char *MemoryWriteBuffersWrapperName =
const char *MemoryWritePointersWrapperName =
"__llvm_orc_bootstrap_mem_write_pointers_wrapper";

const char *RegisterEHFrameSectionWrapperName =
"llvm_orc_registerEHFrameSectionWrapper";
const char *DeregisterEHFrameSectionWrapperName =
"llvm_orc_deregisterEHFrameSectionWrapper";
const char *RegisterEHFrameSectionAllocActionName =
"llvm_orc_registerEHFrameAllocAction";
const char *DeregisterEHFrameSectionAllocActionName =
"llvm_orc_deregisterEHFrameAllocAction";

const char *RunAsMainWrapperName = "__llvm_orc_bootstrap_run_as_main_wrapper";
const char *RunAsVoidFunctionWrapperName =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ void addDefaultBootstrapValuesForHostProcess(
StringMap<ExecutorAddr> &BootstrapSymbols) {

// FIXME: We probably shouldn't set these on Windows?
BootstrapSymbols[rt::RegisterEHFrameSectionWrapperName] =
ExecutorAddr::fromPtr(&llvm_orc_registerEHFrameSectionWrapper);
BootstrapSymbols[rt::DeregisterEHFrameSectionWrapperName] =
ExecutorAddr::fromPtr(&llvm_orc_deregisterEHFrameSectionWrapper);
BootstrapSymbols[rt::RegisterEHFrameSectionAllocActionName] =
ExecutorAddr::fromPtr(&llvm_orc_registerEHFrameSectionAllocAction);
BootstrapSymbols[rt::DeregisterEHFrameSectionAllocActionName] =
ExecutorAddr::fromPtr(&llvm_orc_deregisterEHFrameSectionAllocAction);

#ifdef __APPLE__
if (!dlsym(RTLD_DEFAULT, "__unw_add_find_dynamic_unwind_sections"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,14 +164,14 @@ static Error deregisterEHFrameWrapper(ExecutorAddrRange EHFrame) {
}

extern "C" orc::shared::CWrapperFunctionResult
llvm_orc_registerEHFrameSectionWrapper(const char *Data, uint64_t Size) {
llvm_orc_registerEHFrameSectionAllocAction(const char *Data, uint64_t Size) {
return WrapperFunction<SPSError(SPSExecutorAddrRange)>::handle(
Data, Size, registerEHFrameWrapper)
.release();
}

extern "C" orc::shared::CWrapperFunctionResult
llvm_orc_deregisterEHFrameSectionWrapper(const char *Data, uint64_t Size) {
llvm_orc_deregisterEHFrameSectionAllocAction(const char *Data, uint64_t Size) {
return WrapperFunction<SPSError(SPSExecutorAddrRange)>::handle(
Data, Size, deregisterEHFrameWrapper)
.release();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,10 +207,10 @@ Error SimpleRemoteEPCServer::sendSetupMessage(
"Dispatch function name should not be set");
EI.BootstrapSymbols[ExecutorSessionObjectName] = ExecutorAddr::fromPtr(this);
EI.BootstrapSymbols[DispatchFnName] = ExecutorAddr::fromPtr(jitDispatchEntry);
EI.BootstrapSymbols[rt::RegisterEHFrameSectionWrapperName] =
ExecutorAddr::fromPtr(&llvm_orc_registerEHFrameSectionWrapper);
EI.BootstrapSymbols[rt::DeregisterEHFrameSectionWrapperName] =
ExecutorAddr::fromPtr(&llvm_orc_deregisterEHFrameSectionWrapper);
EI.BootstrapSymbols[rt::RegisterEHFrameSectionAllocActionName] =
ExecutorAddr::fromPtr(&llvm_orc_registerEHFrameSectionAllocAction);
EI.BootstrapSymbols[rt::DeregisterEHFrameSectionAllocActionName] =
ExecutorAddr::fromPtr(&llvm_orc_deregisterEHFrameSectionAllocAction);

using SPSSerialize =
shared::SPSArgList<shared::SPSSimpleRemoteEPCExecutorInfo>;
Expand Down
4 changes: 2 additions & 2 deletions llvm/tools/lli/lli.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,8 @@ namespace {
}

LLVM_ATTRIBUTE_USED void linkComponents() {
errs() << (void *)&llvm_orc_registerEHFrameSectionWrapper
<< (void *)&llvm_orc_deregisterEHFrameSectionWrapper
errs() << (void *)&llvm_orc_registerEHFrameSectionAllocAction
<< (void *)&llvm_orc_deregisterEHFrameSectionAllocAction
<< (void *)&llvm_orc_registerJITLoaderGDBWrapper
<< (void *)&llvm_orc_registerJITLoaderGDBAllocAction;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ using namespace llvm::orc;
ExitOnError ExitOnErr;

LLVM_ATTRIBUTE_USED void linkComponents() {
errs() << (void *)&llvm_orc_registerEHFrameSectionWrapper
<< (void *)&llvm_orc_deregisterEHFrameSectionWrapper
errs() << (void *)&llvm_orc_registerEHFrameSectionAllocAction
<< (void *)&llvm_orc_deregisterEHFrameSectionAllocAction
<< (void *)&llvm_orc_registerJITLoaderGDBWrapper
<< (void *)&llvm_orc_registerJITLoaderGDBAllocAction;
}
Expand Down
4 changes: 2 additions & 2 deletions llvm/tools/llvm-jitlink/llvm-jitlink.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -336,8 +336,8 @@ static ExitOnError ExitOnErr;

static LLVM_ATTRIBUTE_USED void linkComponents() {
errs() << "Linking in runtime functions\n"
<< (void *)&llvm_orc_registerEHFrameSectionWrapper << '\n'
<< (void *)&llvm_orc_deregisterEHFrameSectionWrapper << '\n'
<< (void *)&llvm_orc_registerEHFrameSectionAllocAction << '\n'
<< (void *)&llvm_orc_deregisterEHFrameSectionAllocAction << '\n'
<< (void *)&llvm_orc_registerJITLoaderGDBWrapper << '\n'
<< (void *)&llvm_orc_registerJITLoaderGDBAllocAction << '\n'
<< (void *)&llvm_orc_registerJITLoaderPerfStart << '\n'
Expand Down