LLVM  14.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"

Collaboration diagram for llvm::jitlink::PassConfiguration:
[legend]

Public Attributes

Pre-prune passes. More...

Post-prune passes. More...

Post-allocation passes. More...

Pre-fixup passes. More...

Post-fixup passes. More...

Detailed Description

An LinkGraph pass configuration, consisting of a list of pre-prune, post-prune, and post-fixup passes.

Definition at line 1554 of file JITLink.h.

◆ 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 1585 of file JITLink.h.

◆ 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 1605 of file JITLink.h.

Referenced by llvm::orc::EHFrameRegistrationPlugin::modifyPassConfig().

◆ 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 1570 of file JITLink.h.

◆ 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 1596 of file JITLink.h.