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 pairs one of EPCGenericMemoryAccess's proxies with its
14// controller-interface descriptor in Shared/SPSCI/MemoryAccessSPSCI.h, which
15// supplies the wrapper name and wire signature. The specs are public so that
16// 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_EPCGENERICMEMORYACCESSSPS_H
22#define LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESSSPS_H
23
28
29#include <memory>
30
31namespace llvm::orc::sps {
32
72
73/// Create an EPCGenericMemoryAccess that reaches the memory-access wrappers in
74/// the given JITDylib via the runtime's SPS controller interface.
77
78/// Create an EPCGenericMemoryAccess that reaches the memory-access wrappers in
79/// ES's bootstrap JITDylib via the runtime's SPS controller interface.
82
83} // namespace llvm::orc::sps
84
85#endif // LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESSSPS_H
#define LLVM_ABI
Definition Compiler.h:215
Tagged union holding either a T or a Error.
Definition Error.h:485
Proxy< void(ArrayRef< tpctypes::UInt32Write >)> WriteUInt32sProxy
Proxy< std::vector< uint16_t >(ArrayRef< ExecutorAddr >)> ReadUInt16sProxy
Proxy< std::vector< std::string >(ArrayRef< ExecutorAddr >)> ReadStringsProxy
Proxy< void(ArrayRef< tpctypes::UInt64Write >)> WriteUInt64sProxy
Proxy< void(ArrayRef< tpctypes::UInt8Write >)> WriteUInt8sProxy
Proxy< std::vector< std::vector< uint8_t > >(ArrayRef< ExecutorAddrRange >)> ReadBuffersProxy
Proxy< std::vector< ExecutorAddr >(ArrayRef< ExecutorAddr >)> ReadPointersProxy
Proxy< std::vector< uint64_t >(ArrayRef< ExecutorAddr >)> ReadUInt64sProxy
Proxy< void(ArrayRef< tpctypes::UInt16Write >)> WriteUInt16sProxy
Proxy< std::vector< uint8_t >(ArrayRef< ExecutorAddr >)> ReadUInt8sProxy
Proxy< void(ArrayRef< tpctypes::PointerWrite >)> WritePointersProxy
Proxy< void(ArrayRef< tpctypes::BufferWrite >)> WriteBuffersProxy
Proxy< std::vector< uint32_t >(ArrayRef< ExecutorAddr >)> ReadUInt32sProxy
An ExecutionSession represents a running JIT program.
Definition Core.h:1111
Represents a JIT'd dynamic library.
Definition Core.h:675
ProxySpec< EPCGenericMemoryAccess::WriteUInt64sProxy, rt::sps_ci::MemWriteUInt64s > MemWriteUInt64sProxySpec
ProxySpec< EPCGenericMemoryAccess::WriteUInt16sProxy, rt::sps_ci::MemWriteUInt16s > MemWriteUInt16sProxySpec
ProxySpec< EPCGenericMemoryAccess::ReadUInt8sProxy, rt::sps_ci::MemReadUInt8s > MemReadUInt8sProxySpec
ProxySpec< EPCGenericMemoryAccess::WriteUInt32sProxy, rt::sps_ci::MemWriteUInt32s > MemWriteUInt32sProxySpec
ProxySpec< EPCGenericMemoryAccess::WritePointersProxy, rt::sps_ci::MemWritePointers > MemWritePointersProxySpec
ProxySpec< EPCGenericMemoryAccess::ReadUInt16sProxy, rt::sps_ci::MemReadUInt16s > MemReadUInt16sProxySpec
ProxySpec< EPCGenericMemoryAccess::ReadStringsProxy, rt::sps_ci::MemReadStrings > MemReadStringsProxySpec
ProxySpec< EPCGenericMemoryAccess::WriteBuffersProxy, rt::sps_ci::MemWriteBuffers > MemWriteBuffersProxySpec
ProxySpec< EPCGenericMemoryAccess::ReadBuffersProxy, rt::sps_ci::MemReadBuffers > MemReadBuffersProxySpec
ProxySpec< EPCGenericMemoryAccess::WriteUInt8sProxy, rt::sps_ci::MemWriteUInt8s > MemWriteUInt8sProxySpec
ProxySpec< EPCGenericMemoryAccess::ReadUInt64sProxy, rt::sps_ci::MemReadUInt64s > MemReadUInt64sProxySpec
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< EPCGenericMemoryAccess::ReadPointersProxy, rt::sps_ci::MemReadPointers > MemReadPointersProxySpec
ProxySpec< EPCGenericMemoryAccess::ReadUInt32sProxy, rt::sps_ci::MemReadUInt32s > MemReadUInt32sProxySpec