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

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 33 of file JITLinkGeneric.h.

Member Typedef Documentation

◆ AllocResult

Definition at line 46 of file JITLinkGeneric.h.

◆ FinalizeResult

Definition at line 47 of file JITLinkGeneric.h.

◆ InFlightAlloc

Definition at line 45 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 35 of file JITLinkGeneric.h.

◆ ~JITLinkerBase()

llvm::jitlink::JITLinkerBase::~JITLinkerBase ( )
virtual

Definition at line 23 of file JITLinkGeneric.cpp.

Member Function Documentation

◆ getPassConfig()

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

Definition at line 53 of file JITLinkGeneric.h.

◆ linkPhase1()

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

Definition at line 25 of file JITLinkGeneric.cpp.

References llvm::dbgs(), and LLVM_DEBUG.

◆ linkPhase2()

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

Definition at line 59 of file JITLinkGeneric.cpp.

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

◆ linkPhase3()

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

Definition at line 123 of file JITLinkGeneric.cpp.

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

◆ linkPhase4()

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

Definition at line 169 of file JITLinkGeneric.cpp.

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


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