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)
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
¶SharedMemoryMapper(
llvm::orc::ExecutorProcessControl& EPC,
llvm::orc::SharedMemoryMapper::SymbolAddrs
SAs,
size_t PageSize)
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)
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()
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)
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)
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)
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)
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()
~SharedMemoryMapper()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h:152