LLVM 24.0.0git
EPCGenericMemoryAccessSPS.h
Go to the documentation of this file.
1//===- EPCGenericMemoryAccessSPS.h - SPS memory access ----------*- 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 EPCGenericMemoryAccess to the ORC runtime's SPS controller interface:
10// a ProxySpec per operation, plus factories that resolve them and construct an
11// instance.
12//
13// Each spec is built from the controller-interface descriptor for one of
14// EPCGenericMemoryAccess's operations in Shared/SPSCI/MemoryAccessSPSCI.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// recordProxy<Spec>(&P, Name) with lookupAndApply.
18//
19//===----------------------------------------------------------------------===//
20
21#ifndef LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESSSPS_H
22#define LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESSSPS_H
23
28
29#include <memory>
30
31namespace llvm::orc::sps {
32
46
47/// Create an EPCGenericMemoryAccess that reaches the memory-access wrappers in
48/// the given JITDylib via the runtime's SPS controller interface.
51
52/// Create an EPCGenericMemoryAccess that reaches the memory-access wrappers in
53/// ES's bootstrap JITDylib via the runtime's SPS controller interface.
56
57} // namespace llvm::orc::sps
58
59#endif // LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESSSPS_H
#define LLVM_ABI
Definition Compiler.h:211
Tagged union holding either a T or a Error.
Definition Error.h:485
An ExecutionSession represents a running JIT program.
Definition Core.h:1097
Represents a JIT'd dynamic library.
Definition Core.h:668
Dispatches proxies for the call described by CI, which must provide:
ProxySpec< rt::sps_ci::MemReadUInt16s > MemReadUInt16sProxySpec
ProxySpec< rt::sps_ci::MemWritePointers > MemWritePointersProxySpec
ProxySpec< rt::sps_ci::MemReadBuffers > MemReadBuffersProxySpec
ProxySpec< rt::sps_ci::MemReadUInt64s > MemReadUInt64sProxySpec
ProxySpec< rt::sps_ci::MemReadUInt8s > MemReadUInt8sProxySpec
ProxySpec< rt::sps_ci::MemWriteBuffers > MemWriteBuffersProxySpec
ProxySpec< rt::sps_ci::MemWriteUInt8s > MemWriteUInt8sProxySpec
ProxySpec< rt::sps_ci::MemWriteUInt64s > MemWriteUInt64sProxySpec
ProxySpec< rt::sps_ci::MemWriteUInt16s > MemWriteUInt16sProxySpec
LLVM_ABI Expected< std::unique_ptr< EPCGenericMemoryAccess > > createEPCGenericMemoryAccess(JITDylib &JD)
Create an EPCGenericMemoryAccess that reaches the memory-access wrappers in the given JITDylib via th...
ProxySpec< rt::sps_ci::MemReadPointers > MemReadPointersProxySpec
ProxySpec< rt::sps_ci::MemWriteUInt32s > MemWriteUInt32sProxySpec
ProxySpec< rt::sps_ci::MemReadStrings > MemReadStringsProxySpec
ProxySpec< rt::sps_ci::MemReadUInt32s > MemReadUInt32sProxySpec