class SimpleRemoteEPCServer
Declaration
class SimpleRemoteEPCServer : public SimpleRemoteEPCTransportClient { /* full declaration omitted */ };
Description
A simple EPC server implementation.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:36
Inherits from: SimpleRemoteEPCTransportClient
Member Variables
- private std::mutex ServerStateMutex
- private std::condition_variable ShutdownCV
- private enum(unnamed enum at / home / hdoc / tmp / llvm - project / llvm / include / llvm / ExecutionEngine / Orc / TargetProcess / SimpleRemoteEPCServer.h : 167 : 3) RunState
- private llvm::Error ShutdownErr = Error::success()
- private std::unique_ptr<SimpleRemoteEPCTransport> T
- private std::unique_ptr<Dispatcher> D
- private std::vector< std::unique_ptr<ExecutorBootstrapService>> Services
- private llvm::orc::SimpleRemoteEPCServer:: ReportErrorFunction ReportError
- private uint64_t NextSeqNo = 0
- private llvm::orc::SimpleRemoteEPCServer:: PendingJITDispatchResultsMap PendingJITDispatchResults
- private std::vector<sys::DynamicLibrary> Dylibs
Method Overview
- public template <typename TransportT, typename... TransportTCtorArgTs>static Expected<std::unique_ptr<SimpleRemoteEPCServer>> Create(unique_function<llvm::Error (llvm::orc::SimpleRemoteEPCServer::Setup &)> SetupFunction, TransportTCtorArgTs &&... TransportTCtorArgs)
- public static StringMap<llvm::orc::ExecutorAddr> defaultBootstrapSymbols()
- private shared::WrapperFunctionResult doJITDispatch(const void * FnTag, const char * ArgData, size_t ArgSize)
- private uint64_t getNextSeqNo()
- private void handleCallWrapper(uint64_t RemoteSeqNo, llvm::orc::ExecutorAddr TagAddr, llvm::orc::SimpleRemoteEPCArgBytesVector ArgBytes)
- public void handleDisconnect(llvm::Error Err)
- public Expected<llvm::orc::SimpleRemoteEPCTransportClient::HandleMessageAction> handleMessage(llvm::orc::SimpleRemoteEPCOpcode OpC, uint64_t SeqNo, llvm::orc::ExecutorAddr TagAddr, llvm::orc::SimpleRemoteEPCArgBytesVector ArgBytes)
- private llvm::Error handleResult(uint64_t SeqNo, llvm::orc::ExecutorAddr TagAddr, llvm::orc::SimpleRemoteEPCArgBytesVector ArgBytes)
- private static shared::CWrapperFunctionResult jitDispatchEntry(void * DispatchCtx, const void * FnTag, const char * ArgData, size_t ArgSize)
- private void releaseSeqNo(uint64_t)
- private llvm::Error sendMessage(llvm::orc::SimpleRemoteEPCOpcode OpC, uint64_t SeqNo, llvm::orc::ExecutorAddr TagAddr, ArrayRef<char> ArgBytes)
- private llvm::Error sendSetupMessage(StringMap<llvm::orc::ExecutorAddr> BootstrapSymbols)
- public void setErrorReporter(llvm::orc::SimpleRemoteEPCServer::ReportErrorFunction ReportError)
- public llvm::Error waitForDisconnect()
Inherited from SimpleRemoteEPCTransportClient:
Methods
¶template <typename TransportT,
typename... TransportTCtorArgTs>
static Expected<
std::unique_ptr<SimpleRemoteEPCServer>>
Create(
unique_function<llvm::Error(
llvm::orc::SimpleRemoteEPCServer::Setup&)>
SetupFunction,
TransportTCtorArgTs&&... TransportTCtorArgs)
template <typename TransportT,
typename... TransportTCtorArgTs>
static Expected<
std::unique_ptr<SimpleRemoteEPCServer>>
Create(
unique_function<llvm::Error(
llvm::orc::SimpleRemoteEPCServer::Setup&)>
SetupFunction,
TransportTCtorArgTs&&... TransportTCtorArgs)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:87
Templates
- TransportT
- TransportTCtorArgTs
Parameters
- unique_function<llvm::Error( llvm::orc::SimpleRemoteEPCServer::Setup&)> SetupFunction
- TransportTCtorArgTs&&... TransportTCtorArgs
¶static StringMap<llvm::orc::ExecutorAddr>
defaultBootstrapSymbols()
static StringMap<llvm::orc::ExecutorAddr>
defaultBootstrapSymbols()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:83
¶shared::WrapperFunctionResult doJITDispatch(
const void* FnTag,
const char* ArgData,
size_t ArgSize)
shared::WrapperFunctionResult doJITDispatch(
const void* FnTag,
const char* ArgData,
size_t ArgSize)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:152
Parameters
- const void* FnTag
- const char* ArgData
- size_t ArgSize
¶uint64_t getNextSeqNo()
uint64_t getNextSeqNo()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:159
¶void handleCallWrapper(
uint64_t RemoteSeqNo,
llvm::orc::ExecutorAddr TagAddr,
llvm::orc::SimpleRemoteEPCArgBytesVector
ArgBytes)
void handleCallWrapper(
uint64_t RemoteSeqNo,
llvm::orc::ExecutorAddr TagAddr,
llvm::orc::SimpleRemoteEPCArgBytesVector
ArgBytes)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:148
Parameters
- uint64_t RemoteSeqNo
- llvm::orc::ExecutorAddr TagAddr
- llvm::orc::SimpleRemoteEPCArgBytesVector ArgBytes
¶void handleDisconnect(llvm::Error Err)
void handleDisconnect(llvm::Error Err)
Description
Handle a disconnection from the underlying transport. No further messages should be sent to handleMessage after this is called. Err may contain an Error value indicating unexpected disconnection. This allows clients to log such errors, but no attempt should be made at recovery (which should be handled inside the transport class, if it is supported at all).
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:138
Parameters
- llvm::Error Err
¶Expected<
llvm::orc::SimpleRemoteEPCTransportClient::
HandleMessageAction>
handleMessage(
llvm::orc::SimpleRemoteEPCOpcode OpC,
uint64_t SeqNo,
llvm::orc::ExecutorAddr TagAddr,
llvm::orc::SimpleRemoteEPCArgBytesVector
ArgBytes)
Expected<
llvm::orc::SimpleRemoteEPCTransportClient::
HandleMessageAction>
handleMessage(
llvm::orc::SimpleRemoteEPCOpcode OpC,
uint64_t SeqNo,
llvm::orc::ExecutorAddr TagAddr,
llvm::orc::SimpleRemoteEPCArgBytesVector
ArgBytes)
Description
Call to handle an incoming message. Returns 'Disconnect' if the message is a 'detach' message from the remote otherwise returns 'Continue'. If the server has moved to an error state, returns an error, which should be reported and treated as a 'Disconnect'.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:133
Parameters
- llvm::orc::SimpleRemoteEPCOpcode OpC
- uint64_t SeqNo
- llvm::orc::ExecutorAddr TagAddr
- llvm::orc::SimpleRemoteEPCArgBytesVector ArgBytes
¶llvm::Error handleResult(
uint64_t SeqNo,
llvm::orc::ExecutorAddr TagAddr,
llvm::orc::SimpleRemoteEPCArgBytesVector
ArgBytes)
llvm::Error handleResult(
uint64_t SeqNo,
llvm::orc::ExecutorAddr TagAddr,
llvm::orc::SimpleRemoteEPCArgBytesVector
ArgBytes)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:146
Parameters
- uint64_t SeqNo
- llvm::orc::ExecutorAddr TagAddr
- llvm::orc::SimpleRemoteEPCArgBytesVector ArgBytes
¶static shared::CWrapperFunctionResult
jitDispatchEntry(void* DispatchCtx,
const void* FnTag,
const char* ArgData,
size_t ArgSize)
static shared::CWrapperFunctionResult
jitDispatchEntry(void* DispatchCtx,
const void* FnTag,
const char* ArgData,
size_t ArgSize)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:154
Parameters
- void* DispatchCtx
- const void* FnTag
- const char* ArgData
- size_t ArgSize
¶void releaseSeqNo(uint64_t)
void releaseSeqNo(uint64_t)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:160
Parameters
- uint64_t
¶llvm::Error sendMessage(
llvm::orc::SimpleRemoteEPCOpcode OpC,
uint64_t SeqNo,
llvm::orc::ExecutorAddr TagAddr,
ArrayRef<char> ArgBytes)
llvm::Error sendMessage(
llvm::orc::SimpleRemoteEPCOpcode OpC,
uint64_t SeqNo,
llvm::orc::ExecutorAddr TagAddr,
ArrayRef<char> ArgBytes)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:141
Parameters
- llvm::orc::SimpleRemoteEPCOpcode OpC
- uint64_t SeqNo
- llvm::orc::ExecutorAddr TagAddr
- ArrayRef<char> ArgBytes
¶llvm::Error sendSetupMessage(
StringMap<llvm::orc::ExecutorAddr>
BootstrapSymbols)
llvm::Error sendSetupMessage(
StringMap<llvm::orc::ExecutorAddr>
BootstrapSymbols)
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:144
Parameters
- StringMap<llvm::orc::ExecutorAddr> BootstrapSymbols
¶void setErrorReporter(
llvm::orc::SimpleRemoteEPCServer::
ReportErrorFunction ReportError)
void setErrorReporter(
llvm::orc::SimpleRemoteEPCServer::
ReportErrorFunction ReportError)
Description
Set an error reporter for this server.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:123
Parameters
- llvm::orc::SimpleRemoteEPCServer:: ReportErrorFunction ReportError
¶llvm::Error waitForDisconnect()
llvm::Error waitForDisconnect()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h:136