LLVM 24.0.0git
EPCGenericJITLinkMemoryManagerSPS.h
Go to the documentation of this file.
1//===- EPCGenericJITLinkMemoryManagerSPS.h - SPS mem manager ----*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Binds EPCGenericJITLinkMemoryManager to the ORC runtime's SPS controller
10// interface: a ProxySpec per operation, plus factories that resolve them and
11// construct an instance.
12//
13// Each spec pairs one of EPCGenericJITLinkMemoryManager's proxies with its
14// controller-interface descriptor in Shared/SPSCI/SimpleNativeMemoryMapSPSCI.h,
15// which supplies the wrapper name and wire signature. The specs are public so
16// that clients can resolve the operations under non-default names, using
17// proxyInit<Spec>(&P, Name) with buildProxies.
18//
19//===----------------------------------------------------------------------===//
20
21#ifndef LLVM_EXECUTIONENGINE_ORC_EPCGENERICJITLINKMEMORYMANAGERSPS_H
22#define LLVM_EXECUTIONENGINE_ORC_EPCGENERICJITLINKMEMORYMANAGERSPS_H
23
28
29#include <memory>
30
31namespace llvm::orc::sps {
32
45
46/// Create an EPCGenericJITLinkMemoryManager for the ORC runtime's
47/// SimpleNativeMemoryMap interface, resolving its symbols in the given
48/// JITDylib.
51
52/// Create an EPCGenericJITLinkMemoryManager for the ORC runtime's
53/// SimpleNativeMemoryMap interface, resolving its symbols in the given
54/// ExecutionSession's bootstrap JITDylib.
57
58} // namespace llvm::orc::sps
59
60#endif // LLVM_EXECUTIONENGINE_ORC_EPCGENERICJITLINKMEMORYMANAGERSPS_H
#define LLVM_ABI
Definition Compiler.h:215
Tagged union holding either a T or a Error.
Definition Error.h:485
Proxy< Expected< ExecutorAddr >(ExecutorAddr, uint64_t)> ReserveProxy
Reserve an address range of the given size; returns its base.
Proxy< Error(ExecutorAddr, ArrayRef< ExecutorAddr >)> DeinitializeProxy
Deinitialize the allocations with the given base addresses (running their deallocation actions) witho...
Proxy< Error(ExecutorAddr, ArrayRef< ExecutorAddr >)> ReleaseProxy
Release the allocations with the given base addresses.
Proxy< Expected< ExecutorAddr >(ExecutorAddr, tpctypes::FinalizeRequest)> InitializeProxy
Apply a finalize request; returns a key for the initialized allocation.
An ExecutionSession represents a running JIT program.
Definition Core.h:1111
Represents a JIT'd dynamic library.
Definition Core.h:675
LLVM_ABI Expected< std::unique_ptr< EPCGenericJITLinkMemoryManager > > createEPCGenericJITLinkMemoryManager(JITDylib &JD)
Create an EPCGenericJITLinkMemoryManager for the ORC runtime's SimpleNativeMemoryMap interface,...
ProxySpec< EPCGenericJITLinkMemoryManager::ReleaseProxy, rt::sps_ci::MemMgrRelease > MemMgrReleaseProxySpec
ProxySpec< EPCGenericJITLinkMemoryManager::ReserveProxy, rt::sps_ci::MemMgrReserve > MemMgrReserveProxySpec
ProxySpec< EPCGenericJITLinkMemoryManager::InitializeProxy, rt::sps_ci::MemMgrInitialize > MemMgrInitializeProxySpec
ProxySpec< EPCGenericJITLinkMemoryManager::DeinitializeProxy, rt::sps_ci::MemMgrDeinitialize > MemMgrDeinitializeProxySpec
Deinitialize the allocations with the given base addresses (running their deallocation actions) witho...
Apply a finalize request; returns a key for the initialized allocation.
Release the allocations with the given base addresses.
Reserve an address range of the given size; returns its base.