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

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 

Definition at line 31 of file JITLinkGeneric.h.

References assert(), G, and Passes.

◆ ~JITLinkerBase()

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

Member Function Documentation

◆ getGraph()

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

◆ getPassConfig()

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

◆ linkPhase1()

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

◆ linkPhase2()

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

◆ linkPhase3()

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

◆ linkPhase4()

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

Definition at line 189 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)

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