LLVM: llvm::jitlink::InProcessMemoryManager Class Reference (original) (raw)

A JITLinkMemoryManager that allocates in-process memory. More...

#include "[llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h](JITLinkMemoryManager%5F8h%5Fsource.html)"

Public Member Functions
InProcessMemoryManager (uint64_t PageSize)
Create an instance using the given page size.
void allocate (const JITLinkDylib *JD, LinkGraph &G, OnAllocatedFunction OnAllocated) override
Start the allocation process.
void deallocate (std::vector< FinalizedAlloc > Alloc, OnDeallocatedFunction OnDeallocated) override
Deallocate a list of allocation objects.
AllocResult allocate (const JITLinkDylib *JD, LinkGraph &G)
Convenience function for blocking allocation.
void deallocate (FinalizedAlloc Alloc, OnDeallocatedFunction OnDeallocated)
Convenience function for deallocation of a single alloc.
Error deallocate (std::vector< FinalizedAlloc > Allocs)
Convenience function for blocking deallocation.
Error deallocate (FinalizedAlloc Alloc)
Convenience function for blocking deallocation of a single alloc.
Public Member Functions inherited from llvm::jitlink::JITLinkMemoryManager
virtual ~JITLinkMemoryManager ()
AllocResult allocate (const JITLinkDylib *JD, LinkGraph &G)
Convenience function for blocking allocation.
void deallocate (FinalizedAlloc Alloc, OnDeallocatedFunction OnDeallocated)
Convenience function for deallocation of a single alloc.
Error deallocate (std::vector< FinalizedAlloc > Allocs)
Convenience function for blocking deallocation.
Error deallocate (FinalizedAlloc Alloc)
Convenience function for blocking deallocation of a single alloc.
Additional Inherited Members
Public Types inherited from llvm::jitlink::JITLinkMemoryManager
using AllocResult = Expected<std::unique_ptr<InFlightAlloc>>
Typedef for the argument to be passed to OnAllocatedFunction.
using OnAllocatedFunction = unique_function<void(AllocResult)>
Called when allocation has been completed.
using OnDeallocatedFunction = unique_function<void(Error)>
Called when deallocation has completed.

A JITLinkMemoryManager that allocates in-process memory.

Definition at line 363 of file JITLinkMemoryManager.h.

llvm::jitlink::InProcessMemoryManager::InProcessMemoryManager ( uint64_t PageSize) inline

allocate() [1/2]

allocate() [2/2]

Start the allocation process.

If the initial allocation is successful then the OnAllocated function will be called with a std::unique_ptr value. If the assocation is unsuccessful then the OnAllocated function will be called with an Error.

Scan the request and calculate the group and total sizes. Check that segment size is no larger than a page.

Check that the total size requested (including zero fill) is not larger than a size_t.

Implements llvm::jitlink::JITLinkMemoryManager.

Definition at line 345 of file JITLinkMemoryManager.cpp.

References llvm::alignTo(), llvm::sys::MemoryBlock::allocatedSize(), llvm::sys::Memory::allocateMappedMemory(), llvm::jitlink::BasicLayout::apply(), llvm::sys::MemoryBlock::base(), llvm::dbgs(), llvm::errorCodeToError(), llvm::formatv(), llvm::orc::ExecutorAddr::fromPtr(), G, llvm::jitlink::BasicLayout::getContiguousPageBasedLayoutSizes(), LLVM_DEBUG, llvm::make_error(), llvm::sys::Memory::MF_READ, llvm::sys::Memory::MF_WRITE, llvm::jitlink::BasicLayout::segments(), and llvm::orc::Standard.

Create()

deallocate() [1/4]

deallocate() [2/4]

deallocate() [3/4]

deallocate() [4/4]

Error llvm::jitlink::JITLinkMemoryManager::deallocate ( std::vector< FinalizedAlloc > Allocs) inline

The documentation for this class was generated from the following files: