LLVM 24.0.0git
Proxy.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/FunctionExtras.h"
#include "llvm/ExecutionEngine/Orc/Core.h"
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
#include "llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/MSVCErrorWorkarounds.h"
#include <cstdint>
#include <future>
#include <string>
#include <type_traits>
#include <vector>

Go to the source code of this file.

Classes

class  llvm::orc::rt::ProxyBase
struct  llvm::orc::rt::detail::ProxyErrorRet< T >
 Maps a proxy's callee return type to the type delivered to the client, so a dispatch failure can always be reported alongside the result: More...
struct  llvm::orc::rt::detail::ProxyErrorRet< void >
struct  llvm::orc::rt::detail::ProxyErrorRet< Error >
struct  llvm::orc::rt::detail::ProxyErrorRet< Expected< T > >
struct  llvm::orc::rt::detail::ProxyRetPromise< Error >
struct  llvm::orc::rt::detail::ProxyRetPromise< Expected< T > >
class  llvm::orc::rt::Proxy< RetT(ArgTs...)>
 Runtime-agnostic interface for invoking an executor-side operation with the signature RetT(ArgTs...). More...
struct  llvm::orc::rt::ProxyInit< FnT >

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::orc
namespace  llvm::orc::rt
namespace  llvm::orc::rt::detail

Typedefs

using llvm::orc::rt::CallMainProxy = Proxy<int64_t(ExecutorAddr, ArrayRef<std::string>)>
 Runtime-agnostic interface for running a main-like function (int(int argc, char *argv[])) in the executor.
using llvm::orc::rt::CallVoidVoidProxy = Proxy<void(ExecutorAddr)>
 Runtime-agnostic interface for running a void() function in the executor.
using llvm::orc::rt::CallInt32VoidProxy = Proxy<int32_t(ExecutorAddr)>
 Runtime-agnostic interface for running an int32_t() function in the executor.
using llvm::orc::rt::CallInt32Int32Proxy = Proxy<int32_t(ExecutorAddr, int32_t)>
 Runtime-agnostic interface for running an int32_t(int32_t) function in the executor.
using llvm::orc::rt::MemWriteUInt8sProxy = Proxy<void(ArrayRef<tpctypes::UInt8Write>)>
 Runtime-agnostic interfaces for the memory-access operations.
using llvm::orc::rt::MemWriteUInt16sProxy = Proxy<void(ArrayRef<tpctypes::UInt16Write>)>
using llvm::orc::rt::MemWriteUInt32sProxy = Proxy<void(ArrayRef<tpctypes::UInt32Write>)>
using llvm::orc::rt::MemWriteUInt64sProxy = Proxy<void(ArrayRef<tpctypes::UInt64Write>)>
using llvm::orc::rt::MemWritePointersProxy = Proxy<void(ArrayRef<tpctypes::PointerWrite>)>
using llvm::orc::rt::MemWriteBuffersProxy = Proxy<void(ArrayRef<tpctypes::BufferWrite>)>
using llvm::orc::rt::MemReadUInt8sProxy = Proxy<std::vector<uint8_t>(ArrayRef<ExecutorAddr>)>
using llvm::orc::rt::MemReadUInt16sProxy
using llvm::orc::rt::MemReadUInt32sProxy
using llvm::orc::rt::MemReadUInt64sProxy
using llvm::orc::rt::MemReadPointersProxy
using llvm::orc::rt::MemReadBuffersProxy
using llvm::orc::rt::MemReadStringsProxy

Functions

template<typename FnT>
ProxyInit< FnTllvm::orc::rt::proxyInit (Proxy< FnT > *P, typename Proxy< FnT >::DispatchFn Dispatch, StringRef Name, SymbolLookupFlags LookupFlags=SymbolLookupFlags::RequiredSymbol)
template<typename ProxySpecT, typename FnT>
ProxyInit< FnTllvm::orc::rt::proxyInit (Proxy< FnT > *P, SymbolLookupFlags LookupFlags=SymbolLookupFlags::RequiredSymbol)
template<typename ProxySpecT, typename FnT>
ProxyInit< FnTllvm::orc::rt::proxyInit (Proxy< FnT > *P, StringRef Name, SymbolLookupFlags LookupFlags=SymbolLookupFlags::RequiredSymbol)
Error llvm::orc::rt::buildProxies (JITDylib &JD)
 buildProxies base case.
template<typename... FnTs>
Error llvm::orc::rt::buildProxies (ExecutionSession &ES, ProxyInit< FnTs >... PIs)
 buildProxies: Given an ExecutionSession, use BootstrapJITDylib.
template<typename FnT, typename... FnTs>
Error llvm::orc::rt::buildProxies (JITDylib &JD, ProxyInit< FnT > PI, ProxyInit< FnTs >... PIs)
 Build a sequence of proxies from their respective specs.