LLVM 20.0.0git
|
Base class for a JIT linker. More...
#include "ExecutionEngine/JITLink/JITLinkGeneric.h"
Public Member Functions | |
JITLinkerBase (std::unique_ptr< JITLinkContext > Ctx, std::unique_ptr< LinkGraph > G, PassConfiguration Passes) | |
virtual | ~JITLinkerBase () |
Protected Types | |
using | InFlightAlloc = JITLinkMemoryManager::InFlightAlloc |
using | AllocResult = Expected< std::unique_ptr< InFlightAlloc > > |
using | FinalizeResult = Expected< JITLinkMemoryManager::FinalizedAlloc > |
Protected Member Functions | |
LinkGraph & | getGraph () |
bool | shouldAddDefaultTargetPasses (const Triple &TT) |
PassConfiguration & | getPassConfig () |
void | linkPhase1 (std::unique_ptr< JITLinkerBase > Self) |
void | linkPhase2 (std::unique_ptr< JITLinkerBase > Self, AllocResult AR) |
void | linkPhase3 (std::unique_ptr< JITLinkerBase > Self, Expected< AsyncLookupResult > LookupResult) |
void | linkPhase4 (std::unique_ptr< JITLinkerBase > Self, FinalizeResult FR) |
Base class for a JIT linker.
A JITLinkerBase instance links one object file into an ongoing JIT session. Symbol resolution and finalization operations are pluggable, and called using continuation passing (passing a continuation for the remaining linker work) to allow them to be performed asynchronously.
Definition at line 29 of file JITLinkGeneric.h.
|
protected |
Definition at line 42 of file JITLinkGeneric.h.
|
protected |
Definition at line 43 of file JITLinkGeneric.h.
Definition at line 41 of file JITLinkGeneric.h.
|
inline |
Definition at line 31 of file JITLinkGeneric.h.
|
virtualdefault |
|
inlineprotected |
Definition at line 46 of file JITLinkGeneric.h.
Referenced by llvm::jitlink::ELFJITLinker_x86_64::ELFJITLinker_x86_64().
|
inlineprotected |
Definition at line 59 of file JITLinkGeneric.h.
Referenced by llvm::jitlink::ELFJITLinker_i386::ELFJITLinker_i386(), llvm::jitlink::ELFJITLinker_ppc64< Endianness >::ELFJITLinker_ppc64(), llvm::jitlink::ELFJITLinker_riscv::ELFJITLinker_riscv(), and llvm::jitlink::ELFJITLinker_x86_64::ELFJITLinker_x86_64().
|
protected |
Definition at line 25 of file JITLinkGeneric.cpp.
References llvm::all_of(), llvm::dbgs(), linkPhase2(), LLVM_DEBUG, llvm::jitlink::PassConfiguration::PostPrunePasses, llvm::jitlink::PassConfiguration::PrePrunePasses, and llvm::jitlink::prune().
|
protected |
Definition at line 70 of file JITLinkGeneric.cpp.
References llvm::jitlink::createLookupContinuation(), llvm::dbgs(), LLVM_DEBUG, llvm::jitlink::PassConfiguration::PostAllocationPasses, and llvm::Expected< T >::takeError().
Referenced by linkPhase1().
|
protected |
Definition at line 134 of file JITLinkGeneric.cpp.
References llvm::dbgs(), linkPhase4(), LLVM_DEBUG, llvm::jitlink::PassConfiguration::PostFixupPasses, llvm::jitlink::PassConfiguration::PreFixupPasses, and llvm::Expected< T >::takeError().
|
protected |
Definition at line 189 of file JITLinkGeneric.cpp.
References llvm::dbgs(), LLVM_DEBUG, and llvm::Expected< T >::takeError().
Referenced by linkPhase3().
|
inlineprotected |
Definition at line 51 of file JITLinkGeneric.h.
Referenced by llvm::jitlink::ELFJITLinker_x86_64::ELFJITLinker_x86_64().