13#ifndef LLVM_EXECUTIONENGINE_JITLINK_EHFRAMESUPPORT_H
14#define LLVM_EXECUTIONENGINE_JITLINK_EHFRAMESUPPORT_H
42 bool isFDE()
const {
return CIEEdge !=
nullptr; }
45 bool isCIE()
const {
return CIEEdge ==
nullptr; }
78 Edge *CIEEdge =
nullptr;
79 Edge *PCBeginEdge =
nullptr;
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Lightweight error class with error context and mandatory checking.
Triple - Helper class for working with autoconf configuration names.
An Addressable with content and edges.
Inspect an eh-frame CFI record.
Edge * getCIEEdge() const
If this is an FDE record, returns the Edge pointing to the CIE.
Edge * getPCBeginEdge() const
If this is an FDE record, returns the Edge pointing at the PC-begin symbol.
Edge * getLSDAEdge() const
If this is an FDE record, returns the Edge pointing at the LSDA, if any.
bool isCIE() const
Returns true if this frame is a CIE, false for an FDE.
Edge * getPersonalityEdge() const
If this is a CIE record, returns the Edge pointing at the personality function, if any.
bool isFDE() const
Returns true if this frame is an FDE, false for a CIE.
static EHFrameCFIBlockInspector FromEdgeScan(Block &B)
Identify CFI record type and edges based on number and order of edges in the given block only.
Supports registration/deregistration of EH-frames in a target process.
virtual Error registerEHFrames(orc::ExecutorAddrRange EHFrameSection)=0
virtual Error deregisterEHFrames(orc::ExecutorAddrRange EHFrameSection)=0
virtual ~EHFrameRegistrar()
Represents fixups and constraints in the LinkGraph.
Registers / Deregisters EH-frames in the current process.
Error registerEHFrames(orc::ExecutorAddrRange EHFrameSection) override
Error deregisterEHFrames(orc::ExecutorAddrRange EHFrameSection) override
Represents an address in the executor process.
unique_function is a type-erasing functor similar to std::function.
std::function< void(orc::ExecutorAddr EHFrameSectionAddr, size_t EHFrameSectionSize)> StoreFrameRangeFunction
LinkGraphPassFunction createEHFrameRecorderPass(const Triple &TT, StoreFrameRangeFunction StoreFrameRange)
Creates a pass that records the address and size of the EH frame section.
This is an optimization pass for GlobalISel generic memory operations.
Represents an address range in the exceutor process.