class SimpleSegmentAlloc

Declaration

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

Description

A utility class for making simple allocations using JITLinkMemoryManager. SimpleSegementAlloc takes a mapping of AllocGroups to Segments and uses this to create a LinkGraph with one Section (containing one Block) per Segment. Clients can obtain a pointer to the working memory and executor address of that block using the Segment's AllocGroup. Once memory has been populated, clients can call finalize to finalize the memory.

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:294

Member Variables

private std::unique_ptr<LinkGraph> G
private AllocGroupSmallMap<llvm::jitlink::Block*> ContentBlocks
private std::unique_ptr< JITLinkMemoryManager::InFlightAlloc> Alloc

Method Overview

  • public static void Create(llvm::jitlink::JITLinkMemoryManager & MemMgr, const llvm::jitlink::JITLinkDylib * JD, llvm::jitlink::SimpleSegmentAlloc::SegmentMap Segments, llvm::jitlink::SimpleSegmentAlloc::OnCreatedFunction OnCreated)
  • public static Expected<llvm::jitlink::SimpleSegmentAlloc> Create(llvm::jitlink::JITLinkMemoryManager & MemMgr, const llvm::jitlink::JITLinkDylib * JD, llvm::jitlink::SimpleSegmentAlloc::SegmentMap Segments)
  • public SimpleSegmentAlloc(llvm::jitlink::SimpleSegmentAlloc &&)
  • private SimpleSegmentAlloc(std::unique_ptr<LinkGraph> G, AllocGroupSmallMap<llvm::jitlink::Block *> ContentBlocks, std::unique_ptr<JITLinkMemoryManager::InFlightAlloc> Alloc)
  • public void finalize(llvm::jitlink::SimpleSegmentAlloc::OnFinalizedFunction OnFinalized)
  • public Expected<JITLinkMemoryManager::FinalizedAlloc> finalize()
  • public llvm::jitlink::SimpleSegmentAlloc::SegmentInfo getSegInfo(llvm::jitlink::AllocGroup AG)
  • public ~SimpleSegmentAlloc()

Methods

static void Create(
    llvm::jitlink::JITLinkMemoryManager& MemMgr,
    const llvm::jitlink::JITLinkDylib* JD,
    llvm::jitlink::SimpleSegmentAlloc::SegmentMap
        Segments,
    llvm::jitlink::SimpleSegmentAlloc::
        OnCreatedFunction OnCreated)

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:319

Parameters

llvm::jitlink::JITLinkMemoryManager& MemMgr
const llvm::jitlink::JITLinkDylib* JD
llvm::jitlink::SimpleSegmentAlloc::SegmentMap Segments
llvm::jitlink::SimpleSegmentAlloc:: OnCreatedFunction OnCreated

static Expected<llvm::jitlink::SimpleSegmentAlloc>
Create(
    llvm::jitlink::JITLinkMemoryManager& MemMgr,
    const llvm::jitlink::JITLinkDylib* JD,
    llvm::jitlink::SimpleSegmentAlloc::SegmentMap
        Segments)

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:322

Parameters

llvm::jitlink::JITLinkMemoryManager& MemMgr
const llvm::jitlink::JITLinkDylib* JD
llvm::jitlink::SimpleSegmentAlloc::SegmentMap Segments

SimpleSegmentAlloc(
    llvm::jitlink::SimpleSegmentAlloc&&)

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:326

Parameters

llvm::jitlink::SimpleSegmentAlloc&&

SimpleSegmentAlloc(
    std::unique_ptr<LinkGraph> G,
    AllocGroupSmallMap<llvm::jitlink::Block*>
        ContentBlocks,
    std::unique_ptr<
        JITLinkMemoryManager::InFlightAlloc>
        Alloc)

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:344

Parameters

std::unique_ptr<LinkGraph> G
AllocGroupSmallMap<llvm::jitlink::Block*> ContentBlocks
std::unique_ptr< JITLinkMemoryManager::InFlightAlloc> Alloc

void finalize(llvm::jitlink::SimpleSegmentAlloc::
                  OnFinalizedFunction OnFinalized)

Description

Finalize all groups (async version).

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:334

Parameters

llvm::jitlink::SimpleSegmentAlloc:: OnFinalizedFunction OnFinalized

Expected<JITLinkMemoryManager::FinalizedAlloc>
finalize()

Description

Finalize all groups.

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:339

llvm::jitlink::SimpleSegmentAlloc::SegmentInfo
getSegInfo(llvm::jitlink::AllocGroup AG)

Description

Returns the SegmentInfo for the given group.

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:331

Parameters

llvm::jitlink::AllocGroup AG

~SimpleSegmentAlloc()

Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h:328