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:
- include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
- lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp