LLVM 20.0.0git
|
An LinkGraph pass configuration, consisting of a list of pre-prune, post-prune, and post-fixup passes. More...
#include "llvm/ExecutionEngine/JITLink/JITLink.h"
Public Attributes | |
LinkGraphPassList | PrePrunePasses |
Pre-prune passes. | |
LinkGraphPassList | PostPrunePasses |
Post-prune passes. | |
LinkGraphPassList | PostAllocationPasses |
Post-allocation passes. | |
LinkGraphPassList | PreFixupPasses |
Pre-fixup passes. | |
LinkGraphPassList | PostFixupPasses |
Post-fixup passes. | |
An LinkGraph pass configuration, consisting of a list of pre-prune, post-prune, and post-fixup passes.
LinkGraphPassList llvm::jitlink::PassConfiguration::PostAllocationPasses |
Post-allocation passes.
These passes are called on the graph after memory has been allocated and defined nodes have been assigned their final addresses, but before the context has been notified of these addresses. At this point externals have not been resolved, and symbol content has not yet been copied into working memory.
Notable use cases: Setting up data structures associated with addresses of defined symbols (e.g. a mapping of __dso_handle to JITDylib* for the JIT runtime) – using a PostAllocationPass for this ensures that the data structures are in-place before any query for resolved symbols can complete.
Definition at line 1837 of file JITLink.h.
Referenced by llvm::jitlink::ELFJITLinker_i386::ELFJITLinker_i386(), llvm::jitlink::ELFJITLinker_ppc64< Endianness >::ELFJITLinker_ppc64(), llvm::jitlink::ELFJITLinker_riscv::ELFJITLinker_riscv(), llvm::jitlink::ELFJITLinker_x86_64::ELFJITLinker_x86_64(), llvm::jitlink::JITLinkerBase::linkPhase2(), and llvm::orc::DebugObjectManagerPlugin::modifyPassConfig().
LinkGraphPassList llvm::jitlink::PassConfiguration::PostFixupPasses |
Post-fixup passes.
These passes are called on the graph after block contents has been copied to working memory, and fixups applied. Blocks have been updated to point to their fixed up content.
Notable use cases: Testing and validation.
Definition at line 1857 of file JITLink.h.
Referenced by llvm::jitlink::JITLinkerBase::linkPhase3(), and llvm::orc::EHFrameRegistrationPlugin::modifyPassConfig().
LinkGraphPassList llvm::jitlink::PassConfiguration::PostPrunePasses |
Post-prune passes.
These passes are called on the graph after dead stripping, but before memory is allocated or nodes assigned their final addresses.
Notable use cases: Building GOT, stub, and TLV symbols.
Definition at line 1822 of file JITLink.h.
Referenced by llvm::jitlink::JITLinkerBase::linkPhase1().
LinkGraphPassList llvm::jitlink::PassConfiguration::PreFixupPasses |
Pre-fixup passes.
These passes are called on the graph after memory has been allocated, content copied into working memory, and all nodes (including externals) have been assigned their final addresses, but before any fixups have been applied.
Notable use cases: Late link-time optimizations like GOT and stub elimination.
Definition at line 1848 of file JITLink.h.
Referenced by llvm::jitlink::JITLinkerBase::linkPhase3().
LinkGraphPassList llvm::jitlink::PassConfiguration::PrePrunePasses |
Pre-prune passes.
These passes are called on the graph after it is built, and before any symbols have been pruned. Graph nodes still have their original vmaddrs.
Notable use cases: Marking symbols live or should-discard.
Definition at line 1814 of file JITLink.h.
Referenced by llvm::jitlink::JITLinkerBase::linkPhase1(), and llvm::orc::DebugInfoPreservationPlugin::modifyPassConfig().