Go to the documentation of this file.
14 #ifndef LLVM_EXECUTIONENGINE_ORC_SHARED_SIMPLEREMOTEEPCUTILS_H
15 #define LLVM_EXECUTIONENGINE_ORC_SHARED_SIMPLEREMOTEEPCUTILS_H
32 namespace SimpleRemoteEPCDefaultBootstrapSymbolNames {
128 :
C(
C), InFD(InFD), OutFD(OutFD) {}
130 Error readBytes(
char *Dst,
size_t Size,
bool *IsEOF =
nullptr);
131 int writeBytes(
const char *Src,
size_t Size);
135 SimpleRemoteEPCTransportClient &
C;
136 std::thread ListenerThread;
138 std::atomic<bool> Disconnected{
false};
209 SI.TargetTriple,
SI.PageSize,
SI.BootstrapSymbols);
214 return SPSSimpleRemoteEPCExecutorInfo::AsArgList ::serialize(
215 OB,
SI.TargetTriple,
SI.PageSize,
SI.BootstrapSymbols);
219 return SPSSimpleRemoteEPCExecutorInfo::AsArgList ::deserialize(
220 IB,
SI.TargetTriple,
SI.PageSize,
SI.BootstrapSymbols);
235 #endif // LLVM_EXECUTIONENGINE_ORC_SHARED_SIMPLEREMOTEEPCUTILS_H
Represents an address in the executor process.
static size_t size(const RemoteSymbolLookup &V)
static size_t deserialize(SPSInputBuffer &IB, RemoteSymbolLookupSetElement &V)
This is an optimization pass for GlobalISel generic memory operations.
Error sendMessage(SimpleRemoteEPCOpcode OpC, uint64_t SeqNo, ExecutorAddr TagAddr, ArrayRef< char > ArgBytes) override
Send a SimpleRemoteEPC message.
SPS tag type for sequences.
std::vector< RemoteSymbolLookupSetElement > RemoteSymbolLookupSet
Specialize to describe how to serialize/deserialize to/from the given concrete type.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Output char buffer with overflow check.
RemoteSymbolLookupSet Symbols
static size_t serialize(SPSOutputBuffer &OB, const RemoteSymbolLookup &V)
~FDSimpleRemoteEPCTransport() override
static size_t serialize(SPSOutputBuffer &OB, const RemoteSymbolLookupSetElement &V)
Tagged union holding either a T or a Error.
StringMap< ExecutorAddr > BootstrapSymbols
static bool deserialize(SPSInputBuffer &IB, SimpleRemoteEPCExecutorInfo &SI)
virtual Error sendMessage(SimpleRemoteEPCOpcode OpC, uint64_t SeqNo, ExecutorAddr TagAddr, ArrayRef< char > ArgBytes)=0
Send a SimpleRemoteEPC message.
virtual void handleDisconnect(Error Err)=0
Handle a disconnection from the underlying transport.
static bool serialize(SPSOutputBuffer &OB, const SimpleRemoteEPCExecutorInfo &SI)
(vector float) vec_cmpeq(*A, *B) C
virtual void disconnect()=0
Trigger disconnection from the transport.
static size_t deserialize(SPSInputBuffer &IB, RemoteSymbolLookup &V)
const char * ExecutorSessionObjectName
static Expected< std::unique_ptr< FDSimpleRemoteEPCTransport > > Create(SimpleRemoteEPCTransportClient &C, int InFD, int OutFD)
Create a FDSimpleRemoteEPCTransport using the given FDs for reading (InFD) and writing (OutFD).
static size_t size(const RemoteSymbolLookupSetElement &V)
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
virtual Expected< HandleMessageAction > handleMessage(SimpleRemoteEPCOpcode OpC, uint64_t SeqNo, ExecutorAddr TagAddr, SimpleRemoteEPCArgBytesVector ArgBytes)=0
Handle receipt of a message.
SPS tag type for expecteds, which are either a T or a string representing an error.
static size_t size(const SimpleRemoteEPCExecutorInfo &SI)
Error start() override
Called during setup of the client to indicate that the client is ready to receive messages.
static Expected< std::unique_ptr< FDSimpleRemoteEPCTransport > > Create(SimpleRemoteEPCTransportClient &C, int FD)
Create a FDSimpleRemoteEPCTransport using the given FD for both reading and writing.
virtual ~SimpleRemoteEPCTransport()
Lightweight error class with error context and mandatory checking.
virtual Error start()=0
Called during setup of the client to indicate that the client is ready to receive messages.
virtual ~SimpleRemoteEPCTransportClient()
const char * DispatchFnName
SPSExpected< SPSExecutorAddr >(SPSExecutorAddr, SPSString, uint64_t) SPSLoadDylibSignature
SPSSequence< char > SPSString
SPS tag type for strings, which are equivalent to sequences of chars.
Uses read/write on FileDescriptors for transport.
void disconnect() override
Trigger disconnection from the transport.
A utility class for serializing to a blob from a variadic list.