class InProcessMemoryManager::IPInFlightAlloc

Declaration

class InProcessMemoryManager::IPInFlightAlloc : public InFlightAlloc { /* full declaration omitted */ };

Description

Represents an allocation which has not been finalized yet. InFlightAllocs manage both executor memory allocations and working memory allocations. On finalization, the InFlightAlloc should transfer the content of working memory into executor memory, apply memory protections, and run any finalization functions. Working memory should be kept alive at least until one of the following happens: (1) the InFlightAlloc instance is destroyed, (2) the InFlightAlloc is abandoned, (3) finalized target memory is destroyed. If abandon is called then working memory and executor memory should both be freed.

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp:231

Inherits from: JITLinkMemoryManager::InFlightAlloc

Member Variables

private llvm::jitlink::InProcessMemoryManager& MemMgr
private llvm::jitlink::LinkGraph& G
private llvm::jitlink::BasicLayout BL
private sys::MemoryBlock StandardSegments
private sys::MemoryBlock FinalizationSegments

Method Overview

  • public IPInFlightAlloc(llvm::jitlink::InProcessMemoryManager & MemMgr, llvm::jitlink::LinkGraph & G, llvm::jitlink::BasicLayout BL, sys::MemoryBlock StandardSegments, sys::MemoryBlock FinalizationSegments)
  • public void abandon(llvm::jitlink::JITLinkMemoryManager::InFlightAlloc::OnAbandonedFunction OnAbandoned)
  • private llvm::Error applyProtections()
  • public void finalize(llvm::jitlink::JITLinkMemoryManager::InFlightAlloc::OnFinalizedFunction OnFinalized)

Inherited from JITLinkMemoryManager::InFlightAlloc:

Methods

IPInFlightAlloc(
    llvm::jitlink::InProcessMemoryManager& MemMgr,
    llvm::jitlink::LinkGraph& G,
    llvm::jitlink::BasicLayout BL,
    sys::MemoryBlock StandardSegments,
    sys::MemoryBlock FinalizationSegments)

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp:234

Parameters

llvm::jitlink::InProcessMemoryManager& MemMgr
llvm::jitlink::LinkGraph& G
llvm::jitlink::BasicLayout BL
sys::MemoryBlock StandardSegments
sys::MemoryBlock FinalizationSegments

void abandon(
    llvm::jitlink::JITLinkMemoryManager::
        InFlightAlloc::OnAbandonedFunction
            OnAbandoned)

Description

Called prior to finalization if the allocation should be abandoned.

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp:267

Parameters

llvm::jitlink::JITLinkMemoryManager:: InFlightAlloc::OnAbandonedFunction OnAbandoned

llvm::Error applyProtections()

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp:277

void finalize(
    llvm::jitlink::JITLinkMemoryManager::
        InFlightAlloc::OnFinalizedFunction
            OnFinalized)

Description

Called to transfer working memory to the target and apply finalization.

Declared at: llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp:241

Parameters

llvm::jitlink::JITLinkMemoryManager:: InFlightAlloc::OnFinalizedFunction OnFinalized