LLVM 20.0.0git
Public Member Functions | Protected Types | Protected Member Functions | List of all members
llvm::jitlink::JITLinkerBase Class Referenceabstract

Base class for a JIT linker. More...

#include "ExecutionEngine/JITLink/JITLinkGeneric.h"

Inheritance diagram for llvm::jitlink::JITLinkerBase:
Inheritance graph
[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

Definition at line 43 of file JITLinkGeneric.h.

◆ InFlightAlloc

Definition at line 41 of file JITLinkGeneric.h.

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(), G, and Passes.

◆ ~JITLinkerBase()

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

Member Function Documentation

◆ getGraph()

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

◆ getPassConfig()

PassConfiguration & llvm::jitlink::JITLinkerBase::getPassConfig ( )
inlineprotected

◆ 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: