14#ifndef LLVM_EXECUTIONENGINE_ORC_SHARED_TARGETPROCESSCONTROLTYPES_H
15#define LLVM_EXECUTIONENGINE_ORC_SHARED_TARGETPROCESSCONTROLTYPES_H
41 "Cannot use no-alloc memory in a remote alloc request");
68 std::vector<SharedMemorySegFinalizeRequest>
Segments;
123class SPSRemoteAllocGroup;
166 uint8_t WireValue = 0;
168 WireValue |= ReadBit;
170 WireValue |= WriteBit;
172 WireValue |= ExecBit;
174 WireValue |= FinalizeBit;
189 bool FinalizeLifetime = (Val & FinalizeBit) ?
true :
false;
190 RAG = {MP, FinalizeLifetime};
197 tpctypes::SegFinalizeRequest> {
237 tpctypes::SharedMemorySegFinalizeRequest> {
247 return SFRAL::serialize(OB, SFR.
RAG, SFR.
Addr, SFR.
Size);
252 return SFRAL::deserialize(IB, SFR.
RAG, SFR.
Addr, SFR.
Size);
258 tpctypes::SharedMemoryFinalizeRequest> {
279 tpctypes::UIntWrite<T>> {
298 tpctypes::BufferWrite> {
307 OB, W.Addr, W.Buffer);
319 tpctypes::PointerWrite> {
328 OB, W.Addr, W.Value);
333 IB, W.Addr, W.Value);
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
StringRef - Represent a constant reference to a string, i.e.
LLVM Value Representation.
A pair of memory protections and allocation policies.
MemLifetime getMemLifetime() const
Returns the MemLifetime for this group.
Represents an address in the executor process.
A utility class for serializing to a blob from a variadic list.
Output char buffer with overflow check.
SPS tag type for sequences.
static size_t size(const tpctypes::FinalizeRequest &FR)
static bool serialize(SPSOutputBuffer &OB, const tpctypes::FinalizeRequest &FR)
static bool deserialize(SPSInputBuffer &IB, tpctypes::FinalizeRequest &FR)
static bool deserialize(SPSInputBuffer &IB, tpctypes::BufferWrite &W)
static size_t size(const tpctypes::BufferWrite &W)
static bool serialize(SPSOutputBuffer &OB, const tpctypes::BufferWrite &W)
static bool deserialize(SPSInputBuffer &IB, tpctypes::PointerWrite &W)
static size_t size(const tpctypes::PointerWrite &W)
static bool serialize(SPSOutputBuffer &OB, const tpctypes::PointerWrite &W)
static bool serialize(SPSOutputBuffer &OB, const tpctypes::UIntWrite< T > &W)
static size_t size(const tpctypes::UIntWrite< T > &W)
static bool deserialize(SPSInputBuffer &IB, tpctypes::UIntWrite< T > &W)
static bool serialize(SPSOutputBuffer &OB, const tpctypes::RemoteAllocGroup &RAG)
static bool deserialize(SPSInputBuffer &IB, tpctypes::RemoteAllocGroup &RAG)
static size_t size(const tpctypes::RemoteAllocGroup &RAG)
static size_t size(const tpctypes::SegFinalizeRequest &SFR)
static bool deserialize(SPSInputBuffer &IB, tpctypes::SegFinalizeRequest &SFR)
static bool serialize(SPSOutputBuffer &OB, const tpctypes::SegFinalizeRequest &SFR)
static bool deserialize(SPSInputBuffer &IB, tpctypes::SharedMemoryFinalizeRequest &FR)
static size_t size(const tpctypes::SharedMemoryFinalizeRequest &FR)
static bool serialize(SPSOutputBuffer &OB, const tpctypes::SharedMemoryFinalizeRequest &FR)
static bool deserialize(SPSInputBuffer &IB, tpctypes::SharedMemorySegFinalizeRequest &SFR)
static bool serialize(SPSOutputBuffer &OB, const tpctypes::SharedMemorySegFinalizeRequest &SFR)
static size_t size(const tpctypes::SharedMemorySegFinalizeRequest &SFR)
Specialize to describe how to serialize/deserialize to/from the given concrete type.
SPSArgList< SPSTagTs... > AsArgList
Convenience typedef of the corresponding arg list.
std::vector< AllocActionCallPair > AllocActions
A vector of allocation actions to be run for this allocation.
std::vector< ExecutorSymbolDef > LookupResult
MemProt
Describes Read/Write/Exec permissions for memory.
@ NoAlloc
NoAlloc memory should not be allocated by the JITLinkMemoryManager at all.
@ Finalize
Finalize memory should be allocated by the allocator, and then be overwritten and deallocated after a...
This is an optimization pass for GlobalISel generic memory operations.
Describes a write to a buffer.
BufferWrite(ExecutorAddr Addr, StringRef Buffer)
std::vector< SegFinalizeRequest > Segments
shared::AllocActions Actions
Describes a write to a pointer.
PointerWrite(ExecutorAddr Addr, ExecutorAddr Value)
RemoteAllocGroup(const AllocGroup &AG)
RemoteAllocGroup(MemProt Prot, bool FinalizeLifetime)
RemoteAllocGroup(MemProt Prot)
RemoteAllocGroup()=default
std::vector< SharedMemorySegFinalizeRequest > Segments
shared::AllocActions Actions
UIntWrite(ExecutorAddr Addr, T Value)