LLVM 22.0.0git
RegisterEHFrames.h
Go to the documentation of this file.
1//===----- RegisterEHFrames.h -- Register EH frame sections -----*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Support for dynamically registering and deregistering eh-frame sections
10// in-process via libunwind.
11//
12// FIXME: The functionality in this file should be moved to the ORC runtime.
13//
14//===----------------------------------------------------------------------===//
15
16#ifndef LLVM_EXECUTIONENGINE_ORC_TARGETPROCESS_REGISTEREHFRAMES_H
17#define LLVM_EXECUTIONENGINE_ORC_TARGETPROCESS_REGISTEREHFRAMES_H
18
21#include "llvm/Support/Error.h"
22
23namespace llvm {
24namespace orc {
25
26/// Register frames in the given eh-frame section with libunwind.
27LLVM_ABI Error registerEHFrameSection(const void *EHFrameSectionAddr,
28 size_t EHFrameSectionSize);
29
30/// Unregister frames in the given eh-frame section with libunwind.
31LLVM_ABI Error deregisterEHFrameSection(const void *EHFrameSectionAddr,
32 size_t EHFrameSectionSize);
33
34} // end namespace orc
35} // end namespace llvm
36
38llvm_orc_registerEHFrameSectionAllocAction(const char *ArgData, size_t ArgSize);
39
42 size_t ArgSize);
43
44#endif // LLVM_EXECUTIONENGINE_ORC_TARGETPROCESS_REGISTEREHFRAMES_H
#define LLVM_ABI
Definition Compiler.h:213
LLVM_ABI llvm::orc::shared::CWrapperFunctionResult llvm_orc_deregisterEHFrameSectionAllocAction(const char *ArgData, size_t ArgSize)
LLVM_ABI llvm::orc::shared::CWrapperFunctionResult llvm_orc_registerEHFrameSectionAllocAction(const char *ArgData, size_t ArgSize)
LLVM_ABI Error deregisterEHFrameSection(const void *EHFrameSectionAddr, size_t EHFrameSectionSize)
Unregister frames in the given eh-frame section with libunwind.
LLVM_ABI Error registerEHFrameSection(const void *EHFrameSectionAddr, size_t EHFrameSectionSize)
Register frames in the given eh-frame section with libunwind.
This is an optimization pass for GlobalISel generic memory operations.