LLVM: llvm::orc::SimpleRemoteEPC Class Reference (original) (raw)

#include "[llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h](SimpleRemoteEPC%5F8h%5Fsource.html)"

Classes
struct Setup
A setup object containing callbacks to construct a memory manager and memory access object. More...
Public Member Functions
SimpleRemoteEPC (const SimpleRemoteEPC &)=delete
SimpleRemoteEPC & operator= (const SimpleRemoteEPC &)=delete
SimpleRemoteEPC (SimpleRemoteEPC &&)=delete
SimpleRemoteEPC & operator= (SimpleRemoteEPC &&)=delete
~SimpleRemoteEPC () override
Expected< int32_t > runAsMain (ExecutorAddr MainFnAddr, ArrayRef< std::string > Args) override
Run function with a main-like signature.
Expected< int32_t > runAsVoidFunction (ExecutorAddr VoidFnAddr) override
Run function with a int (*)(void) signature.
Expected< int32_t > runAsIntFunction (ExecutorAddr IntFnAddr, int Arg) override
Run function with a int (*)(int) signature.
void callWrapperAsync (ExecutorAddr WrapperFnAddr, IncomingWFRHandler OnComplete, ArrayRef< char > ArgBuffer) override
Run a wrapper function in the executor.
Error disconnect () override
Disconnect from the target process.
Expected< HandleMessageAction > handleMessage (SimpleRemoteEPCOpcode OpC, uint64_t SeqNo, ExecutorAddr TagAddr, SimpleRemoteEPCArgBytesVector ArgBytes) override
Handle receipt of a message.
void handleDisconnect (Error Err) override
Handle a disconnection from the underlying transport.
Public Member Functions inherited from llvm::orc::ExecutorProcessControl
ExecutorProcessControl (std::shared_ptr< SymbolStringPool > SSP, std::unique_ptr< TaskDispatcher > D)
virtual ~ExecutorProcessControl ()
ExecutionSession & getExecutionSession ()
Return the ExecutionSession associated with this instance.
SymbolStringPtr intern (StringRef SymName)
Intern a symbol name in the SymbolStringPool.
std::shared_ptr< SymbolStringPool > getSymbolStringPool () const
Return a shared pointer to the SymbolStringPool for this instance.
TaskDispatcher & getDispatcher ()
const Triple & getTargetTriple () const
Return the Triple for the target process.
unsigned getPageSize () const
Get the page size for the target process.
const JITDispatchInfo & getJITDispatchInfo () const
Get the JIT dispatch function and context address for the executor.
MemoryAccess & getMemoryAccess () const
Return a MemoryAccess object for the target process.
jitlink::JITLinkMemoryManager & getMemMgr () const
Return a JITLinkMemoryManager for the target process.
DylibManager & getDylibMgr () const
Return the DylibManager for the target process.
const StringMap< std::vector< char > > & getBootstrapMap () const
Returns the bootstrap map.
template<typename T, typename SPSTagT>
Error getBootstrapMapValue (StringRef Key, std::optional< T > &Val) const
Look up and SPS-deserialize a bootstrap map value.
const StringMap< ExecutorAddr > & getBootstrapSymbolsMap () const
Returns the bootstrap symbol map.
Error getBootstrapSymbols (ArrayRef< std::pair< ExecutorAddr &, StringRef > > Pairs) const
For each (ExecutorAddr&, StringRef) pair, looks up the string in the bootstrap symbols map and writes its address to the ExecutorAddr if found.
template<typename RunPolicyT, typename FnT>
void callWrapperAsync (RunPolicyT &&Runner, ExecutorAddr WrapperFnAddr, FnT &&OnComplete, ArrayRef< char > ArgBuffer)
Run a wrapper function in the executor using the given Runner to dispatch OnComplete when the result is ready.
template<typename FnT>
void callWrapperAsync (ExecutorAddr WrapperFnAddr, FnT &&OnComplete, ArrayRef< char > ArgBuffer)
Run a wrapper function in the executor.
shared::WrapperFunctionResult callWrapper (ExecutorAddr WrapperFnAddr, ArrayRef< char > ArgBuffer)
Run a wrapper function in the executor.
template<typename SPSSignature, typename RunPolicyT, typename SendResultT, typename... ArgTs>
void callSPSWrapperAsync (RunPolicyT &&Runner, ExecutorAddr WrapperFnAddr, SendResultT &&SendResult, const ArgTs &...Args)
Run a wrapper function using SPS to serialize the arguments and deserialize the results.
template<typename SPSSignature, typename SendResultT, typename... ArgTs>
void callSPSWrapperAsync (ExecutorAddr WrapperFnAddr, SendResultT &&SendResult, const ArgTs &...Args)
Run a wrapper function using SPS to serialize the arguments and deserialize the results.
template<typename SPSSignature, typename... WrapperCallArgTs>
Error callSPSWrapper (ExecutorAddr WrapperFnAddr, WrapperCallArgTs &&...WrapperCallArgs)
Run a wrapper function using SPS to serialize the arguments and deserialize the results.
Public Member Functions inherited from llvm::orc::SimpleRemoteEPCTransportClient
virtual ~SimpleRemoteEPCTransportClient ()
Static Public Member Functions
template<typename TransportT, typename... TransportTCtorArgTs>
static Expected< std::unique_ptr< SimpleRemoteEPC > > Create (std::unique_ptr< TaskDispatcher > D, Setup S, TransportTCtorArgTs &&...TransportTCtorArgs)
Create a SimpleRemoteEPC using the given transport type and args.
Additional Inherited Members
Public Types inherited from llvm::orc::SimpleRemoteEPCTransportClient
enum HandleMessageAction { ContinueSession, EndSession }
Protected Attributes inherited from llvm::orc::ExecutorProcessControl
std::shared_ptr< SymbolStringPool > SSP
std::unique_ptr< TaskDispatcher > D
ExecutionSession * ES = nullptr
Triple TargetTriple
unsigned PageSize = 0
JITDispatchInfo JDI
MemoryAccess * MemAccess = nullptr
jitlink::JITLinkMemoryManager * MemMgr = nullptr
DylibManager * DylibMgr = nullptr
StringMap< std::vector< char > > BootstrapMap
StringMap< ExecutorAddr > BootstrapSymbols

Definition at line 32 of file SimpleRemoteEPC.h.

SimpleRemoteEPC() [2/2]

References SimpleRemoteEPC().

~SimpleRemoteEPC()

llvm::orc::SimpleRemoteEPC::~SimpleRemoteEPC ( ) override

callWrapperAsync()

Create()

template<typename TransportT, typename... TransportTCtorArgTs>

disconnect()

Error llvm::orc::SimpleRemoteEPC::disconnect ( ) overridevirtual

handleDisconnect()

void llvm::orc::SimpleRemoteEPC::handleDisconnect ( Error Err) overridevirtual

handleMessage()

Handle receipt of a message.

Returns an Error if the message cannot be handled, 'EndSession' if the client will not accept any further messages, and 'ContinueSession' otherwise.

Implements llvm::orc::SimpleRemoteEPCTransportClient.

Definition at line 134 of file SimpleRemoteEPC.cpp.

References assert(), llvm::orc::CallWrapper, llvm::orc::SimpleRemoteEPCTransportClient::ContinueSession, llvm::dbgs(), llvm::orc::SimpleRemoteEPCTransportClient::EndSession, llvm::formatv(), handleMessage(), llvm::orc::Hangup, llvm::inconvertibleErrorCode(), llvm::orc::LastOpC, LLVM_DEBUG, llvm::make_error(), llvm::orc::Result, llvm::orc::Setup, and llvm::SmallVectorTemplateCommon< T, typename >::size().

Referenced by handleMessage(), and operator=().

operator=() [1/2]

References SimpleRemoteEPC().

operator=() [2/2]

References callWrapperAsync(), llvm::orc::ExecutorProcessControl::D, disconnect(), llvm::orc::ExecutorProcessControl::DylibMgr, llvm::orc::ExecutorProcessControl::ExecutorProcessControl(), handleDisconnect(), handleMessage(), llvm::move(), runAsIntFunction(), runAsMain(), runAsVoidFunction(), SimpleRemoteEPC(), and llvm::orc::ExecutorProcessControl::SSP.

runAsIntFunction()

Expected< int32_t > llvm::orc::SimpleRemoteEPC::runAsIntFunction ( ExecutorAddr IntFnAddr, int Arg ) overridevirtual

runAsMain()

runAsVoidFunction()

Expected< int32_t > llvm::orc::SimpleRemoteEPC::runAsVoidFunction ( ExecutorAddr VoidFnAddr) overridevirtual

The documentation for this class was generated from the following files: