class JITLinkerBase

Declaration

class JITLinkerBase { /* full declaration omitted */ };

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.

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:30

Member Variables

private std::unique_ptr<JITLinkContext> Ctx
private std::unique_ptr<LinkGraph> G
private llvm::jitlink::PassConfiguration Passes
private std::unique_ptr<InFlightAlloc> Alloc

Method Overview

  • public JITLinkerBase(std::unique_ptr<JITLinkContext> Ctx, std::unique_ptr<LinkGraph> G, llvm::jitlink::PassConfiguration Passes)
  • private void abandonAllocAndBailOut(std::unique_ptr<JITLinkerBase> Self, llvm::Error Err)
  • private void applyLookupResult(llvm::jitlink::AsyncLookupResult LR)
  • private virtual llvm::Error fixUpBlocks(llvm::jitlink::LinkGraph & G) const
  • private JITLinkContext::LookupMap getExternalSymbolNames() const
  • protected llvm::jitlink::PassConfiguration & getPassConfig()
  • protected void linkPhase1(std::unique_ptr<JITLinkerBase> Self)
  • protected void linkPhase2(std::unique_ptr<JITLinkerBase> Self, llvm::jitlink::JITLinkerBase::AllocResult AR)
  • protected void linkPhase3(std::unique_ptr<JITLinkerBase> Self, Expected<llvm::jitlink::AsyncLookupResult> LookupResult)
  • protected void linkPhase4(std::unique_ptr<JITLinkerBase> Self, llvm::jitlink::JITLinkerBase::FinalizeResult FR)
  • private llvm::Error runPasses(llvm::jitlink::LinkGraphPassList & Passes)
  • public virtual ~JITLinkerBase()

Methods

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

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:32

Parameters

std::unique_ptr<JITLinkContext> Ctx
std::unique_ptr<LinkGraph> G
llvm::jitlink::PassConfiguration Passes

void abandonAllocAndBailOut(
    std::unique_ptr<JITLinkerBase> Self,
    llvm::Error Err)

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:89

Parameters

std::unique_ptr<JITLinkerBase> Self
llvm::Error Err

void applyLookupResult(
    llvm::jitlink::AsyncLookupResult LR)

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:88

Parameters

llvm::jitlink::AsyncLookupResult LR

virtual llvm::Error fixUpBlocks(
    llvm::jitlink::LinkGraph& G) const

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:85

Parameters

llvm::jitlink::LinkGraph& G

JITLinkContext::LookupMap getExternalSymbolNames()
    const

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:87

llvm::jitlink::PassConfiguration& getPassConfig()

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:50

void linkPhase1(
    std::unique_ptr<JITLinkerBase> Self)

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:57

Parameters

std::unique_ptr<JITLinkerBase> Self

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

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:63

Parameters

std::unique_ptr<JITLinkerBase> Self
llvm::jitlink::JITLinkerBase::AllocResult AR

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

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:71

Parameters

std::unique_ptr<JITLinkerBase> Self
Expected<llvm::jitlink::AsyncLookupResult> LookupResult

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

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:76

Parameters

std::unique_ptr<JITLinkerBase> Self
llvm::jitlink::JITLinkerBase::FinalizeResult FR

llvm::Error runPasses(
    llvm::jitlink::LinkGraphPassList& Passes)

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:81

Parameters

llvm::jitlink::LinkGraphPassList& Passes

virtual ~JITLinkerBase()

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:39