LLVM 22.0.0git
llvm::jitlink::JITLinkerBase Class Referenceabstract

Base class for a JIT linker. More...

#include "ExecutionEngine/JITLink/JITLinkGeneric.h"

Inheritance diagram for llvm::jitlink::JITLinkerBase:
[legend]

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

LinkGraphgetGraph ()
bool shouldAddDefaultTargetPasses (const Triple &TT)
PassConfigurationgetPassConfig ()
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)

Detailed Description

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.

Member Typedef Documentation

◆ AllocResult

Definition at line 42 of file JITLinkGeneric.h.

◆ FinalizeResult

◆ InFlightAlloc

Constructor & Destructor Documentation

◆ JITLinkerBase()

llvm::jitlink::JITLinkerBase::JITLinkerBase ( std::unique_ptr< JITLinkContext > Ctx,
std::unique_ptr< LinkGraph > G,
PassConfiguration Passes )
inline

Definition at line 31 of file JITLinkGeneric.h.

References assert(), and llvm::move().

◆ ~JITLinkerBase()

llvm::jitlink::JITLinkerBase::~JITLinkerBase ( )
virtualdefault

Member Function Documentation

◆ getGraph()

LinkGraph & llvm::jitlink::JITLinkerBase::getGraph ( )
inlineprotected

◆ getPassConfig()

◆ linkPhase1()

void llvm::jitlink::JITLinkerBase::linkPhase1 ( std::unique_ptr< JITLinkerBase > Self)
protected

◆ linkPhase2()

void llvm::jitlink::JITLinkerBase::linkPhase2 ( std::unique_ptr< JITLinkerBase > Self,
AllocResult AR )
protected

◆ linkPhase3()

void llvm::jitlink::JITLinkerBase::linkPhase3 ( std::unique_ptr< JITLinkerBase > Self,
Expected< AsyncLookupResult > LookupResult )
protected

◆ linkPhase4()

void llvm::jitlink::JITLinkerBase::linkPhase4 ( std::unique_ptr< JITLinkerBase > Self,
FinalizeResult FR )
protected

Definition at line 186 of file JITLinkGeneric.cpp.

References llvm::dbgs(), LLVM_DEBUG, and llvm::Expected< T >::takeError().

Referenced by linkPhase3().

◆ shouldAddDefaultTargetPasses()

bool llvm::jitlink::JITLinkerBase::shouldAddDefaultTargetPasses ( const Triple & TT)
inlineprotected

The documentation for this class was generated from the following files: