class InProcessMemoryMapper

Declaration

class InProcessMemoryMapper : public MemoryMapper { /* full declaration omitted */ };

Description

Manages mapping, content transfer and protections for JIT memory

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:81

Inherits from: MemoryMapper

Member Variables

private std::mutex Mutex
private llvm::orc::InProcessMemoryMapper::ReservationMap Reservations
private llvm::orc::InProcessMemoryMapper::AllocationMap Allocations
private size_t PageSize

Method Overview

  • public static Expected<std::unique_ptr<InProcessMemoryMapper>> Create()
  • public InProcessMemoryMapper(size_t PageSize)
  • public void deinitialize(ArrayRef<llvm::orc::ExecutorAddr> Allocations, llvm::orc::MemoryMapper::OnDeinitializedFunction OnDeInitialized)
  • public unsigned int getPageSize()
  • public void initialize(llvm::orc::MemoryMapper::AllocInfo & AI, llvm::orc::MemoryMapper::OnInitializedFunction OnInitialized)
  • public char * prepare(llvm::orc::ExecutorAddr Addr, size_t ContentSize)
  • public void release(ArrayRef<llvm::orc::ExecutorAddr> Reservations, llvm::orc::MemoryMapper::OnReleasedFunction OnRelease)
  • public void reserve(size_t NumBytes, llvm::orc::MemoryMapper::OnReservedFunction OnReserved)
  • public ~InProcessMemoryMapper()

Inherited from MemoryMapper:

Methods

static Expected<
    std::unique_ptr<InProcessMemoryMapper>>
Create()

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:85

InProcessMemoryMapper(size_t PageSize)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:83

Parameters

size_t PageSize

void deinitialize(
    ArrayRef<llvm::orc::ExecutorAddr> Allocations,
    llvm::orc::MemoryMapper::
        OnDeinitializedFunction OnDeInitialized)

Description

Runs previously specified deinitialization actions Executor addresses returned by initialize should be passed

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:95

Parameters

ArrayRef<llvm::orc::ExecutorAddr> Allocations
llvm::orc::MemoryMapper::OnDeinitializedFunction OnDeInitialized

unsigned int getPageSize()

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:87

void initialize(
    llvm::orc::MemoryMapper::AllocInfo& AI,
    llvm::orc::MemoryMapper::OnInitializedFunction
        OnInitialized)

Description

Ensures executor memory is synchronized with working copy memory, sends functions to be called after initilization and before deinitialization and applies memory protections Returns a unique address identifying the allocation. This address should be passed to deinitialize to run deallocation actions (and reset permissions where possible).

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:91

Parameters

llvm::orc::MemoryMapper::AllocInfo& AI
llvm::orc::MemoryMapper::OnInitializedFunction OnInitialized

char* prepare(llvm::orc::ExecutorAddr Addr,
              size_t ContentSize)

Description

Provides working memory

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:93

Parameters

llvm::orc::ExecutorAddr Addr
size_t ContentSize

void release(
    ArrayRef<llvm::orc::ExecutorAddr>
        Reservations,
    llvm::orc::MemoryMapper::OnReleasedFunction
        OnRelease)

Description

Release address space acquired through reserve()

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:98

Parameters

ArrayRef<llvm::orc::ExecutorAddr> Reservations
llvm::orc::MemoryMapper::OnReleasedFunction OnRelease

void reserve(
    size_t NumBytes,
    llvm::orc::MemoryMapper::OnReservedFunction
        OnReserved)

Description

Reserves address space in executor process

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:89

Parameters

size_t NumBytes
llvm::orc::MemoryMapper::OnReservedFunction OnReserved

~InProcessMemoryMapper()

Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:101