LLVM
8.0.1
|
This class provides utilities (including memory manager, indirect stubs manager, and compile callback manager types) that support remote JITing in ORC. More...
#include "llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h"
Classes | |
class | RemoteCompileCallbackManager |
Remote compile callback manager. More... | |
class | RemoteIndirectStubsManager |
Remote indirect stubs manager. More... | |
class | RemoteRTDyldMemoryManager |
Remote-mapped RuntimeDyld-compatible memory manager. More... | |
class | RemoteTrampolinePool |
Public Member Functions | |
Expected< int > | callIntVoid (JITTargetAddress Addr) |
Call the int(void) function at the given address in the target and return its result. More... | |
Expected< int > | callMain (JITTargetAddress Addr, const std::vector< std::string > &Args) |
Call the int(int, char*[]) function at the given address in the target and return its result. More... | |
Error | callVoidVoid (JITTargetAddress Addr) |
Call the void() function at the given address in the target and wait for it to finish. More... | |
Expected< std::unique_ptr< RemoteRTDyldMemoryManager > > | createRemoteMemoryManager () |
Create an RCMemoryManager which will allocate its memory on the remote target. More... | |
Expected< std::unique_ptr< RemoteIndirectStubsManager > > | createIndirectStubsManager () |
Create an RCIndirectStubsManager that will allocate stubs on the remote target. More... | |
Expected< RemoteCompileCallbackManager & > | enableCompileCallbacks (JITTargetAddress ErrorHandlerAddress) |
Expected< JITTargetAddress > | getSymbolAddress (StringRef Name) |
Search for symbols in the remote process. More... | |
const std::string & | getTargetTriple () const |
Get the triple for the remote target. More... | |
Error | terminateSession () |
Public Member Functions inherited from llvm::orc::rpc::SingleThreadedRPCEndpoint< rpc::RawByteChannel > | |
SingleThreadedRPCEndpoint (rpc::RawByteChannel &C, bool LazyAutoNegotiation) | |
void | addHandler (HandlerT Handler) |
void | addHandler (ClassT &Object, RetT(ClassT::*Method)(ArgTs...)) |
void | addAsyncHandler (HandlerT Handler) |
void | addAsyncHandler (ClassT &Object, RetT(ClassT::*Method)(ArgTs...)) |
Add a class-method as a handler. More... | |
detail::ResultTraits< AltRetT >::ErrorReturnType | callB (const ArgTs &... Args) |
Public Member Functions inherited from llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< rpc::RawByteChannel, uint32_t, uint32_t >, rpc::RawByteChannel, uint32_t, uint32_t > | |
RPCEndpointBase (rpc::RawByteChannel &C, bool LazyAutoNegotiation) | |
Construct an RPC instance on a channel. More... | |
Error | negotiateFunction (bool Retry=false) |
Negotiate a function id for Func with the other end of the channel. More... | |
Error | appendCallAsync (HandlerT Handler, const ArgTs &... Args) |
Append a call Func, does not call send on the channel. More... | |
Error | sendAppendedCalls () |
Error | callAsync (HandlerT Handler, const ArgTs &... Args) |
Error | handleOne () |
Handle one incoming call. More... | |
void | abandonPendingResponses () |
Abandon all outstanding result handlers. More... | |
void | removeHandler () |
Remove the handler for the given function. More... | |
void | clearHandlers () |
Clear all handlers. More... | |
Static Public Member Functions | |
static Expected< std::unique_ptr< OrcRemoteTargetClient > > | Create (rpc::RawByteChannel &Channel, ExecutionSession &ES) |
Create an OrcRemoteTargetClient. More... | |
Static Public Member Functions inherited from llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< rpc::RawByteChannel, uint32_t, uint32_t >, rpc::RawByteChannel, uint32_t, uint32_t > | |
**static detail::ReadArgs< ArgTs... > | readArgs (ArgTs &... Args) |
Helper for handling setter procedures - this method returns a functor that sets the variables referred to by Args... More... | |
This class provides utilities (including memory manager, indirect stubs manager, and compile callback manager types) that support remote JITing in ORC.
Each of the utility classes talks to a JIT server (an instance of the OrcRemoteTargetServer class) via an RPC system (see RPCUtils.h) to carry out its actions.
Definition at line 56 of file OrcRemoteTargetClient.h.
|
inline |
Call the int(void) function at the given address in the target and return its result.
Definition at line 516 of file OrcRemoteTargetClient.h.
References llvm::dbgs(), llvm::format(), and LLVM_DEBUG.
|
inline |
Call the int(int, char*[]) function at the given address in the target and return its result.
Definition at line 524 of file OrcRemoteTargetClient.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::dbgs(), llvm::format(), and LLVM_DEBUG.
|
inline |
Call the void() function at the given address in the target and wait for it to finish.
Definition at line 533 of file OrcRemoteTargetClient.h.
References llvm::dbgs(), llvm::format(), and LLVM_DEBUG.
|
inlinestatic |
Create an OrcRemoteTargetClient.
Channel is the ChannelT instance to communicate on. It is assumed that the channel is ready to be read from and written to.
Definition at line 505 of file OrcRemoteTargetClient.h.
|
inline |
Create an RCIndirectStubsManager that will allocate stubs on the remote target.
Definition at line 553 of file OrcRemoteTargetClient.h.
|
inline |
Create an RCMemoryManager which will allocate its memory on the remote target.
Definition at line 542 of file OrcRemoteTargetClient.h.
|
inline |
Definition at line 561 of file OrcRemoteTargetClient.h.
References assert().
|
inline |
Search for symbols in the remote process.
Note: This should be used by symbol resolvers after they've searched the local symbol table in the JIT stack.
Definition at line 577 of file OrcRemoteTargetClient.h.
References Name.
|
inline |
Get the triple for the remote target.
Definition at line 582 of file OrcRemoteTargetClient.h.
|
inline |
Definition at line 584 of file OrcRemoteTargetClient.h.
References llvm::orc::remote::OrcRemoteTargetClient::RemoteRTDyldMemoryManager::OrcRemoteTargetClient.