|
LLVM 23.0.0git
|
#include "llvm/ExecutionEngine/Orc/MemoryMapper.h"
Classes | |
| struct | SymbolAddrs |
Public Member Functions | |
| SharedMemoryMapper (ExecutorProcessControl &EPC, SymbolAddrs SAs, size_t PageSize) | |
| unsigned int | getPageSize () override |
| void | reserve (size_t NumBytes, OnReservedFunction OnReserved) override |
| Reserves address space in executor process. | |
| char * | prepare (jitlink::LinkGraph &G, ExecutorAddr Addr, size_t ContentSize) override |
| Provides working memory The LinkGraph parameter is included to allow implementations to allocate working memory from the LinkGraph's allocator, in which case it will be deallocated when the LinkGraph is destroyed. | |
| void | initialize (AllocInfo &AI, OnInitializedFunction OnInitialized) override |
| 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. | |
| void | deinitialize (ArrayRef< ExecutorAddr > Allocations, OnDeinitializedFunction OnDeInitialized) override |
| Runs previously specified deinitialization actions Executor addresses returned by initialize should be passed. | |
| void | release (ArrayRef< ExecutorAddr > Reservations, OnReleasedFunction OnRelease) override |
| Release address space acquired through reserve() | |
| ~SharedMemoryMapper () override | |
| Public Member Functions inherited from llvm::orc::MemoryMapper | |
| virtual | ~MemoryMapper () |
Static Public Member Functions | |
| static Expected< std::unique_ptr< SharedMemoryMapper > > | Create (ExecutorProcessControl &EPC, SymbolAddrs SAs) |
Additional Inherited Members | |
| Public Types inherited from llvm::orc::MemoryMapper | |
| using | OnReservedFunction = unique_function<void(Expected<ExecutorAddrRange>)> |
| using | OnInitializedFunction = unique_function<void(Expected<ExecutorAddr>)> |
| using | OnDeinitializedFunction = unique_function<void(Error)> |
| using | OnReleasedFunction = unique_function<void(Error)> |
Definition at line 134 of file MemoryMapper.h.
| llvm::orc::SharedMemoryMapper::SharedMemoryMapper | ( | ExecutorProcessControl & | EPC, |
| SymbolAddrs | SAs, | ||
| size_t | PageSize ) |
Definition at line 198 of file MemoryMapper.cpp.
References llvm_unreachable.
|
override |
Definition at line 445 of file MemoryMapper.cpp.
|
static |
Definition at line 207 of file MemoryMapper.cpp.
References llvm::sys::Process::getPageSize(), llvm::inconvertibleErrorCode(), and llvm::make_error().
|
overridevirtual |
Runs previously specified deinitialization actions Executor addresses returned by initialize should be passed.
Implements llvm::orc::MemoryMapper.
Definition at line 373 of file MemoryMapper.cpp.
References llvm::cantFail(), and llvm::orc::Result.
|
inlineoverridevirtual |
Implements llvm::orc::MemoryMapper.
Definition at line 150 of file MemoryMapper.h.
|
overridevirtual |
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).
Implements llvm::orc::MemoryMapper.
Definition at line 330 of file MemoryMapper.cpp.
References llvm::orc::MemoryMapper::AllocInfo::Actions, llvm::orc::tpctypes::SharedMemoryFinalizeRequest::Actions, llvm::orc::tpctypes::SharedMemorySegFinalizeRequest::Addr, assert(), llvm::sampleprof::Base, llvm::cantFail(), llvm::orc::Finalize, llvm::orc::MemoryMapper::AllocInfo::MappingBase, llvm::orc::tpctypes::SharedMemorySegFinalizeRequest::RAG, llvm::orc::Result, llvm::orc::MemoryMapper::AllocInfo::Segments, llvm::orc::tpctypes::SharedMemoryFinalizeRequest::Segments, and llvm::orc::tpctypes::SharedMemorySegFinalizeRequest::Size.
|
overridevirtual |
Provides working memory The LinkGraph parameter is included to allow implementations to allocate working memory from the LinkGraph's allocator, in which case it will be deallocated when the LinkGraph is destroyed.
Implements llvm::orc::MemoryMapper.
Definition at line 319 of file MemoryMapper.cpp.
References assert(), G, and llvm::Offset.
|
overridevirtual |
Release address space acquired through reserve()
Implements llvm::orc::MemoryMapper.
Definition at line 391 of file MemoryMapper.cpp.
References llvm::sampleprof::Base, llvm::cantFail(), llvm::errnoAsErrorCode(), llvm::errorCodeToError(), llvm::inconvertibleErrorCode(), llvm::joinErrors(), llvm::make_error(), llvm::mapWindowsError(), llvm::orc::Result, Size, and llvm::Error::success().
|
overridevirtual |
Reserves address space in executor process.
Implements llvm::orc::MemoryMapper.
Definition at line 221 of file MemoryMapper.cpp.
References llvm::cantFail(), llvm::Data, llvm::errnoAsErrorCode(), llvm::errorCodeToError(), llvm::BLAKE3::hash(), llvm::inconvertibleErrorCode(), llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::make_error(), llvm::mapWindowsError(), and llvm::orc::Result.