LLVM 24.0.0git
llvm::orc::sps Namespace Reference

Classes

class  HandlerSpec
 Base class for specs that bind handlers for calls with the SPS signature SPSSigT. More...
class  ProxySpec
 Dispatches proxies for the call described by CI, which must provide: More...
class  ProxySpec< CI, SPSRetTagT(SPSArgTagTs...)>

Typedefs

using CallMainProxySpec = ProxySpec<rt::sps_ci::CallMain>
 SPS proxy for CallMainProxy: runs a main-like function (int(int argc, char *argv[])) in the executor.
using CallVoidVoidProxySpec = ProxySpec<rt::sps_ci::CallVoidVoid>
 SPS proxy for CallVoidVoidProxy: runs a void() function in the executor.
using CallInt32VoidProxySpec = ProxySpec<rt::sps_ci::CallInt32Void>
 SPS proxy for CallInt32VoidProxy: runs an int32_t() function in the executor.
using CallInt32Int32ProxySpec = ProxySpec<rt::sps_ci::CallInt32Int32>
 SPS proxy for CallInt32Int32Proxy: runs an int32_t(int32_t) function in the executor.
using DlfcnOpenProxySpec = ProxySpec<rt::sps_ci::DlfcnOpen>
 SPS proxy for DlfcnOpenProxy (dlopen).
using DlfcnUpdateProxySpec = ProxySpec<rt::sps_ci::DlfcnUpdate>
 SPS proxy for DlfcnUpdateProxy (dlupdate).
using DlfcnCloseProxySpec = ProxySpec<rt::sps_ci::DlfcnClose>
 SPS proxy for DlfcnCloseProxy (dlclose).
using DylibMgrOpenProxySpec = ProxySpec<rt::sps_ci::DylibMgrOpen>
using DylibMgrResolveProxySpec = ProxySpec<rt::sps_ci::DylibMgrResolve>
using MemWriteUInt8sProxySpec = ProxySpec<rt::sps_ci::MemWriteUInt8s>
using MemWriteUInt16sProxySpec = ProxySpec<rt::sps_ci::MemWriteUInt16s>
using MemWriteUInt32sProxySpec = ProxySpec<rt::sps_ci::MemWriteUInt32s>
using MemWriteUInt64sProxySpec = ProxySpec<rt::sps_ci::MemWriteUInt64s>
using MemWritePointersProxySpec = ProxySpec<rt::sps_ci::MemWritePointers>
using MemWriteBuffersProxySpec = ProxySpec<rt::sps_ci::MemWriteBuffers>
using MemReadUInt8sProxySpec = ProxySpec<rt::sps_ci::MemReadUInt8s>
using MemReadUInt16sProxySpec = ProxySpec<rt::sps_ci::MemReadUInt16s>
using MemReadUInt32sProxySpec = ProxySpec<rt::sps_ci::MemReadUInt32s>
using MemReadUInt64sProxySpec = ProxySpec<rt::sps_ci::MemReadUInt64s>
using MemReadPointersProxySpec = ProxySpec<rt::sps_ci::MemReadPointers>
using MemReadBuffersProxySpec = ProxySpec<rt::sps_ci::MemReadBuffers>
using MemReadStringsProxySpec = ProxySpec<rt::sps_ci::MemReadStrings>
using SessionLookupInstanceSymbolsProxySpec
using SharedMemoryMapReserveProxySpec
 A ProxySpec per operation, built from the operation's controller-interface descriptor in Shared/SPSCI/SharedMemoryMapperSPSCI.h, which supplies the wrapper name and wire signature.
using SharedMemoryMapInitializeProxySpec
using SharedMemoryMapDeinitializeProxySpec
using SharedMemoryMapReleaseProxySpec
using MemMgrReserveProxySpec = ProxySpec<rt::sps_ci::MemMgrReserve>
using MemMgrInitializeProxySpec = ProxySpec<rt::sps_ci::MemMgrInitialize>
using MemMgrDeinitializeProxySpec = ProxySpec<rt::sps_ci::MemMgrDeinitialize>
using MemMgrReleaseProxySpec = ProxySpec<rt::sps_ci::MemMgrRelease>

Functions

LLVM_ABI Expected< std::unique_ptr< EPCGenericDylibManager > > createEPCGenericDylibManager (JITDylib &JD)
 Create an EPCGenericDylibManager for the ORC runtime's NativeDylibManager interface, resolving its symbols in the given JITDylib.
LLVM_ABI Expected< std::unique_ptr< EPCGenericDylibManager > > createEPCGenericDylibManager (ExecutionSession &ES)
 Create an EPCGenericDylibManager for the ORC runtime's NativeDylibManager interface, resolving its symbols in the given ExecutionSession's bootstrap JITDylib.
LLVM_ABI Expected< std::unique_ptr< EPCGenericJITLinkMemoryManager > > createEPCGenericJITLinkMemoryManager (JITDylib &JD)
 Create an EPCGenericJITLinkMemoryManager for the ORC runtime's SimpleNativeMemoryMap interface, resolving its symbols in the given JITDylib.
LLVM_ABI Expected< std::unique_ptr< EPCGenericJITLinkMemoryManager > > createEPCGenericJITLinkMemoryManager (ExecutionSession &ES)
 Create an EPCGenericJITLinkMemoryManager for the ORC runtime's SimpleNativeMemoryMap interface, resolving its symbols in the given ExecutionSession's bootstrap JITDylib.
LLVM_ABI Expected< std::unique_ptr< EPCGenericMemoryAccess > > createEPCGenericMemoryAccess (JITDylib &JD)
 Create an EPCGenericMemoryAccess that reaches the memory-access wrappers in the given JITDylib via the runtime's SPS controller interface.
LLVM_ABI Expected< std::unique_ptr< EPCGenericMemoryAccess > > createEPCGenericMemoryAccess (ExecutionSession &ES)
 Create an EPCGenericMemoryAccess that reaches the memory-access wrappers in ES's bootstrap JITDylib via the runtime's SPS controller interface.
LLVM_ABI std::unique_ptr< InstanceSymbolGenerator > createInstanceSymbolGenerator (ExecutorAddr LookupFnAddr)
 Create an InstanceSymbolGenerator that calls the ORC runtime's SPS instance-symbol lookup function at the given address.
LLVM_ABI Expected< SharedMemoryMapBindings > createSharedMemoryMapBindings (JITDylib &JD)
 Build bindings over the SPS controller interface, resolving the operations in the given JITDylib under the specs' default names.
LLVM_ABI Expected< SharedMemoryMapBindings > createSharedMemoryMapBindings (ExecutionSession &ES)
 As above, resolving the operations in ES's bootstrap JITDylib.
LLVM_ABI Expected< SimpleMemoryMapBindings > createSimpleMemoryMapBindings (JITDylib &JD)
 Build bindings over the SPS controller interface, resolving the operations in the given JITDylib under the specs' default (SimpleNativeMemoryMap) names.
LLVM_ABI Expected< SimpleMemoryMapBindings > createSimpleMemoryMapBindings (ExecutionSession &ES)
 As above, resolving the operations in ES's bootstrap JITDylib.

Typedef Documentation

◆ CallInt32Int32ProxySpec

SPS proxy for CallInt32Int32Proxy: runs an int32_t(int32_t) function in the executor.

WARNING: This Proxy is experimental and may be removed.

Definition at line 40 of file CallProxiesSPS.h.

◆ CallInt32VoidProxySpec

SPS proxy for CallInt32VoidProxy: runs an int32_t() function in the executor.

WARNING: This Proxy is experimental and may be removed.

Definition at line 35 of file CallProxiesSPS.h.

◆ CallMainProxySpec

SPS proxy for CallMainProxy: runs a main-like function (int(int argc, char *argv[])) in the executor.

Definition at line 26 of file CallProxiesSPS.h.

◆ CallVoidVoidProxySpec

SPS proxy for CallVoidVoidProxy: runs a void() function in the executor.

WARNING: This Proxy is experimental and may be removed.

Definition at line 30 of file CallProxiesSPS.h.

◆ DlfcnCloseProxySpec

SPS proxy for DlfcnCloseProxy (dlclose).

Definition at line 31 of file DlfcnSPS.h.

◆ DlfcnOpenProxySpec

SPS proxy for DlfcnOpenProxy (dlopen).

Definition at line 25 of file DlfcnSPS.h.

◆ DlfcnUpdateProxySpec

SPS proxy for DlfcnUpdateProxy (dlupdate).

Definition at line 28 of file DlfcnSPS.h.

◆ DylibMgrOpenProxySpec

◆ DylibMgrResolveProxySpec

◆ MemMgrDeinitializeProxySpec

◆ MemMgrInitializeProxySpec

◆ MemMgrReleaseProxySpec

◆ MemMgrReserveProxySpec

◆ MemReadBuffersProxySpec

◆ MemReadPointersProxySpec

◆ MemReadStringsProxySpec

◆ MemReadUInt16sProxySpec

◆ MemReadUInt32sProxySpec

◆ MemReadUInt64sProxySpec

◆ MemReadUInt8sProxySpec

◆ MemWriteBuffersProxySpec

◆ MemWritePointersProxySpec

◆ MemWriteUInt16sProxySpec

◆ MemWriteUInt32sProxySpec

◆ MemWriteUInt64sProxySpec

◆ MemWriteUInt8sProxySpec

◆ SessionLookupInstanceSymbolsProxySpec

Initial value:
Dispatches proxies for the call described by CI, which must provide:

Definition at line 31 of file InstanceSymbolGeneratorSPS.h.

◆ SharedMemoryMapDeinitializeProxySpec

◆ SharedMemoryMapInitializeProxySpec

◆ SharedMemoryMapReleaseProxySpec

◆ SharedMemoryMapReserveProxySpec

Initial value:

A ProxySpec per operation, built from the operation's controller-interface descriptor in Shared/SPSCI/SharedMemoryMapperSPSCI.h, which supplies the wrapper name and wire signature.

The specs are public so that clients can resolve the operations under non-default names, using recordProxy<Spec>(&P, Name) with lookupAndApply.

Definition at line 29 of file SharedMemoryMapSPS.h.

Function Documentation

◆ createEPCGenericDylibManager() [1/2]

Expected< std::unique_ptr< EPCGenericDylibManager > > llvm::orc::sps::createEPCGenericDylibManager ( ExecutionSession & ES)

Create an EPCGenericDylibManager for the ORC runtime's NativeDylibManager interface, resolving its symbols in the given ExecutionSession's bootstrap JITDylib.

Definition at line 34 of file EPCGenericDylibManagerSPS.cpp.

References createEPCGenericDylibManager(), and llvm::orc::ExecutionSession::getBootstrapJITDylib().

◆ createEPCGenericDylibManager() [2/2]

◆ createEPCGenericJITLinkMemoryManager() [1/2]

Expected< std::unique_ptr< EPCGenericJITLinkMemoryManager > > llvm::orc::sps::createEPCGenericJITLinkMemoryManager ( ExecutionSession & ES)

Create an EPCGenericJITLinkMemoryManager for the ORC runtime's SimpleNativeMemoryMap interface, resolving its symbols in the given ExecutionSession's bootstrap JITDylib.

Definition at line 25 of file EPCGenericJITLinkMemoryManagerSPS.cpp.

References createEPCGenericJITLinkMemoryManager(), and llvm::orc::ExecutionSession::getBootstrapJITDylib().

◆ createEPCGenericJITLinkMemoryManager() [2/2]

Expected< std::unique_ptr< EPCGenericJITLinkMemoryManager > > llvm::orc::sps::createEPCGenericJITLinkMemoryManager ( JITDylib & JD)

◆ createEPCGenericMemoryAccess() [1/2]

Expected< std::unique_ptr< EPCGenericMemoryAccess > > llvm::orc::sps::createEPCGenericMemoryAccess ( ExecutionSession & ES)

Create an EPCGenericMemoryAccess that reaches the memory-access wrappers in ES's bootstrap JITDylib via the runtime's SPS controller interface.

Definition at line 41 of file EPCGenericMemoryAccessSPS.cpp.

References createEPCGenericMemoryAccess(), and llvm::orc::ExecutionSession::getBootstrapJITDylib().

◆ createEPCGenericMemoryAccess() [2/2]

◆ createInstanceSymbolGenerator()

std::unique_ptr< InstanceSymbolGenerator > llvm::orc::sps::createInstanceSymbolGenerator ( ExecutorAddr LookupFnAddr)

Create an InstanceSymbolGenerator that calls the ORC runtime's SPS instance-symbol lookup function at the given address.

Definition at line 14 of file InstanceSymbolGeneratorSPS.cpp.

Referenced by llvm::orc::ExecutionSession::ExecutionSession().

◆ createSharedMemoryMapBindings() [1/2]

Expected< SharedMemoryMapBindings > llvm::orc::sps::createSharedMemoryMapBindings ( ExecutionSession & ES)

As above, resolving the operations in ES's bootstrap JITDylib.

Definition at line 32 of file SharedMemoryMapSPS.cpp.

References createSharedMemoryMapBindings(), and llvm::orc::ExecutionSession::getBootstrapJITDylib().

◆ createSharedMemoryMapBindings() [2/2]

Expected< SharedMemoryMapBindings > llvm::orc::sps::createSharedMemoryMapBindings ( JITDylib & JD)

Build bindings over the SPS controller interface, resolving the operations in the given JITDylib under the specs' default names.

Definition at line 16 of file SharedMemoryMapSPS.cpp.

References B(), llvm::orc::lookupAndApply(), llvm::orc::recordAddr(), llvm::orc::recordProxy(), and llvm::orc::rt::sps_ci::SharedMemoryMapperInstanceName.

Referenced by createSharedMemoryMapBindings().

◆ createSimpleMemoryMapBindings() [1/2]

Expected< SimpleMemoryMapBindings > llvm::orc::sps::createSimpleMemoryMapBindings ( ExecutionSession & ES)

As above, resolving the operations in ES's bootstrap JITDylib.

Definition at line 33 of file SimpleMemoryMapSPS.cpp.

References createSimpleMemoryMapBindings(), and llvm::orc::ExecutionSession::getBootstrapJITDylib().

◆ createSimpleMemoryMapBindings() [2/2]

Expected< SimpleMemoryMapBindings > llvm::orc::sps::createSimpleMemoryMapBindings ( JITDylib & JD)

Build bindings over the SPS controller interface, resolving the operations in the given JITDylib under the specs' default (SimpleNativeMemoryMap) names.

To bind a different executor-side implementation, use the specs above with recordProxy<Spec>(&P, Name) to resolve its own names instead.

Definition at line 16 of file SimpleMemoryMapSPS.cpp.

References B(), llvm::orc::lookupAndApply(), llvm::orc::recordAddr(), llvm::orc::recordProxy(), and llvm::orc::rt::sps_ci::SimpleNativeMemoryMapInstanceName.

Referenced by createEPCGenericJITLinkMemoryManager(), and createSimpleMemoryMapBindings().