LLVM
8.0.1
|
RemoteObjectClientLayer forwards the ORC Object Layer API over an RPC connection. More...
#include "llvm/ExecutionEngine/Orc/RemoteObjectLayer.h"
Public Types | |
using | ObjHandleT = RemoteObjectLayerAPI::ObjHandleT |
using | RemoteSymbol = RemoteObjectLayerAPI::RemoteSymbol |
using | ObjectPtr = std::unique_ptr< MemoryBuffer > |
Public Types inherited from llvm::orc::RemoteObjectLayerAPI | |
using | ObjHandleT = remote::ResourceIdMgr::ResourceId |
using | BadSymbolHandleError = remote::ResourceNotFound< RemoteSymbolId > |
using | BadObjectHandleError = remote::ResourceNotFound< ObjHandleT > |
Public Member Functions | |
RemoteObjectClientLayer (RPCEndpoint &Remote, std::function< void(Error)> ReportError) | |
Create a RemoteObjectClientLayer that communicates with a RemoteObjectServerLayer instance via the given RPCEndpoint. More... | |
Expected< ObjHandleT > | addObject (ObjectPtr ObjBuffer, std::shared_ptr< LegacyJITSymbolResolver > Resolver) |
Add an object to the JIT. More... | |
Error | removeObject (ObjHandleT H) |
Remove the given object from the JIT. More... | |
JITSymbol | findSymbol (StringRef Name, bool ExportedSymbolsOnly) |
Search for the given named symbol. More... | |
JITSymbol | findSymbolIn (ObjHandleT H, StringRef Name, bool ExportedSymbolsOnly) |
Search for the given named symbol within the given context. More... | |
Error | emitAndFinalize (ObjHandleT H) |
Immediately emit and finalize the object with the given handle. More... | |
Public Member Functions inherited from llvm::orc::RemoteObjectLayer< RPCEndpoint > | |
RemoteObjectLayer (RPCEndpoint &Remote, std::function< void(Error)> ReportError) | |
RemoteObjectClientLayer forwards the ORC Object Layer API over an RPC connection.
This class can be used as the base layer of a JIT stack on the client and will forward operations to a corresponding RemoteObjectServerLayer on the server (which can be composed on top of a "real" object layer like RTDyldObjectLinkingLayer to actually carry out the operations).
Sending relocatable objects to the server (rather than fully relocated bits) allows JIT'd code to be cached on the server side and re-used in subsequent JIT sessions.
Definition at line 289 of file RemoteObjectLayer.h.
using llvm::orc::RemoteObjectClientLayer< RPCEndpoint >::ObjectPtr = std::unique_ptr<MemoryBuffer> |
Definition at line 309 of file RemoteObjectLayer.h.
using llvm::orc::RemoteObjectClientLayer< RPCEndpoint >::ObjHandleT = RemoteObjectLayerAPI::ObjHandleT |
Definition at line 306 of file RemoteObjectLayer.h.
using llvm::orc::RemoteObjectClientLayer< RPCEndpoint >::RemoteSymbol = RemoteObjectLayerAPI::RemoteSymbol |
Definition at line 307 of file RemoteObjectLayer.h.
|
inline |
Create a RemoteObjectClientLayer that communicates with a RemoteObjectServerLayer instance via the given RPCEndpoint.
The ReportError functor can be used locally log errors that are intended to be sent sent
Definition at line 316 of file RemoteObjectLayer.h.
References lookup().
|
inline |
Add an object to the JIT.
Definition at line 330 of file RemoteObjectLayer.h.
References assert().
|
inline |
Immediately emit and finalize the object with the given handle.
Definition at line 363 of file RemoteObjectLayer.h.
|
inline |
Search for the given named symbol.
Definition at line 349 of file RemoteObjectLayer.h.
|
inline |
Search for the given named symbol within the given context.
Definition at line 356 of file RemoteObjectLayer.h.
|
inline |
Remove the given object from the JIT.
Definition at line 344 of file RemoteObjectLayer.h.
References H.