LLVM 24.0.0git
SimpleMemoryMapSPS.h
Go to the documentation of this file.
1//===- SimpleMemoryMapSPS.h - SPS memory-map bindings -----------*- 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 SimpleMemoryMapBindings to the ORC runtime's SPS controller
10// interface: a ProxySpec per operation, plus operations that resolve them.
11//
12// Each spec pairs one of the bindings' proxies with its controller-interface
13// descriptor in Shared/SPSCI/SimpleNativeMemoryMapSPSCI.h, which supplies the
14// wrapper name and wire signature. The specs are public so that clients can
15// resolve the operations under non-default names, using
16// recordProxy<Spec>(&P, Name) with lookupAndApply.
17//
18//===----------------------------------------------------------------------===//
19
20#ifndef LLVM_EXECUTIONENGINE_ORC_SIMPLEMEMORYMAPSPS_H
21#define LLVM_EXECUTIONENGINE_ORC_SIMPLEMEMORYMAPSPS_H
22
28
29namespace llvm::orc::sps {
30
41
42/// Build bindings over the SPS controller interface, resolving the operations
43/// in the given JITDylib under the specs' default (SimpleNativeMemoryMap)
44/// names.
45///
46/// To bind a different executor-side implementation, use the specs above with
47/// recordProxy<Spec>(&P, Name) to resolve its own names instead.
50
51/// As above, resolving the operations in ES's bootstrap JITDylib.
54
55} // namespace llvm::orc::sps
56
57#endif // LLVM_EXECUTIONENGINE_ORC_SIMPLEMEMORYMAPSPS_H
#define LLVM_ABI
Definition Compiler.h:215
Tagged union holding either a T or a Error.
Definition Error.h:485
An ExecutionSession represents a running JIT program.
Definition Core.h:1111
Represents a JIT'd dynamic library.
Definition Core.h:675
LLVM_ABI Expected< SimpleMemoryMapBindings > createSimpleMemoryMapBindings(JITDylib &JD)
Build bindings over the SPS controller interface, resolving the operations in the given JITDylib unde...
ProxySpec< SimpleMemoryMapBindings::ReleaseProxy, rt::sps_ci::MemMgrRelease > MemMgrReleaseProxySpec
ProxySpec< SimpleMemoryMapBindings::InitializeProxy, rt::sps_ci::MemMgrInitialize > MemMgrInitializeProxySpec
ProxySpec< SimpleMemoryMapBindings::ReserveProxy, rt::sps_ci::MemMgrReserve > MemMgrReserveProxySpec
ProxySpec< SimpleMemoryMapBindings::DeinitializeProxy, rt::sps_ci::MemMgrDeinitialize > MemMgrDeinitializeProxySpec
Proxy< Error(ExecutorAddr, ArrayRef< ExecutorAddr >)> DeinitializeProxy
Deinitialize the allocations with the given keys (running their deallocation actions) without releasi...
Proxy< Expected< ExecutorAddr >(ExecutorAddr, tpctypes::FinalizeRequest)> InitializeProxy
Apply a finalize request; returns a key for the initialized allocation.
Deinitialize the allocations with the given base addresses (running their deallocation actions) witho...
Apply a finalize request; returns a key for the initialized allocation.