class SharedMemoryMapper

Declaration

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

Description

Manages mapping, content transfer and protections for JIT memory

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

Inherits from: MemoryMapper

Member Variables

private llvm::orc::ExecutorProcessControl& EPC
private llvm::orc::SharedMemoryMapper::SymbolAddrs SAs
private std::mutex Mutex
private std::map<ExecutorAddr, Reservation> Reservations
private size_t PageSize

Method Overview

  • public static Expected<std::unique_ptr<SharedMemoryMapper>> Create(llvm::orc::ExecutorProcessControl & EPC, llvm::orc::SharedMemoryMapper::SymbolAddrs SAs)
  • public SharedMemoryMapper(llvm::orc::ExecutorProcessControl & EPC, llvm::orc::SharedMemoryMapper::SymbolAddrs SAs, 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 ~SharedMemoryMapper()

Inherited from MemoryMapper:

Methods

static Expected<
    std::unique_ptr<SharedMemoryMapper>>
Create(llvm::orc::ExecutorProcessControl& EPC,
       llvm::orc::SharedMemoryMapper::SymbolAddrs
           SAs)

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

Parameters

llvm::orc::ExecutorProcessControl& EPC
llvm::orc::SharedMemoryMapper::SymbolAddrs SAs

SharedMemoryMapper(
    llvm::orc::ExecutorProcessControl& EPC,
    llvm::orc::SharedMemoryMapper::SymbolAddrs
        SAs,
    size_t PageSize)

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

Parameters

llvm::orc::ExecutorProcessControl& EPC
llvm::orc::SharedMemoryMapper::SymbolAddrs SAs
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:146

Parameters

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

unsigned int getPageSize()

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

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:144

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:142

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:149

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:140

Parameters

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

~SharedMemoryMapper()

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