20#define DEBUG_TYPE "orc"
28template <
typename WriteT,
typename SPSWriteT>
33 [](std::vector<WriteT> Ws) {
35 *W.Addr.template toPtr<
decltype(W.Value) *>() = W.Value;
43 handle(ArgData, ArgSize,
44 [](std::vector<tpctypes::PointerWrite> Ws) {
46 *W.Addr.template toPtr<void **>() =
47 W.Value.template toPtr<void *>();
56 [](std::vector<tpctypes::BufferWrite> Ws) {
58 memcpy(W.Addr.template toPtr<char *>(), W.Buffer.data(),
64template <
typename ReadT>
69 [](std::vector<ExecutorAddr> Rs) {
85 [](std::vector<ExecutorAddr> Rs) {
86 std::vector<ExecutorAddr>
Result;
101 [](std::vector<ExecutorAddrRange> Rs) {
102 std::vector<std::vector<uint8_t>>
Result;
103 Result.reserve(Rs.size());
106 Result.back().resize(R.size());
107 memcpy(
reinterpret_cast<char *
>(
Result.back().data()),
108 R.Start.toPtr<
char *>(), R.size());
119 [](std::vector<ExecutorAddr> Rs) {
120 std::vector<std::string>
Result;
121 Result.reserve(Rs.size());
135 std::vector<std::string> Args) -> int64_t {
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
Triple - Helper class for working with autoconf configuration names.
Represents an address in the executor process.
static ExecutorAddr fromPtr(T *Ptr, UnwrapFn &&Unwrap=UnwrapFn())
Create an ExecutorAddr from the given pointer.
std::enable_if_t< std::is_pointer< T >::value, T > toPtr(WrapFn &&Wrap=WrapFn()) const
Cast this ExecutorAddr to a pointer of the given type.
Applies linker name-mangling for a target.
SPS tag type for sequences.
static llvm::orc::shared::CWrapperFunctionBuffer writePointersWrapper(const char *ArgData, size_t ArgSize)
LLVM_ABI void addRunAsFunctionWrappersTo(StringMap< ExecutorAddr > &M)
Adds executor-side wrappers for the run-as function proxies.
static llvm::orc::shared::CWrapperFunctionBuffer readPointersWrapper(const char *ArgData, size_t ArgSize)
static llvm::orc::shared::CWrapperFunctionBuffer readBuffersWrapper(const char *ArgData, size_t ArgSize)
static llvm::orc::shared::CWrapperFunctionBuffer runAsInt32Int32FunctionWrapper(const char *ArgData, size_t ArgSize)
LLVM_ABI void addTo(StringMap< ExecutorAddr > &M)
Adds all default target-process bootstrap wrappers.
static llvm::orc::shared::CWrapperFunctionBuffer runAsMainWrapper(const char *ArgData, size_t ArgSize)
static llvm::orc::shared::CWrapperFunctionBuffer runAsInt32VoidFunctionWrapper(const char *ArgData, size_t ArgSize)
static llvm::orc::shared::CWrapperFunctionBuffer writeUIntsWrapper(const char *ArgData, size_t ArgSize)
static llvm::orc::shared::CWrapperFunctionBuffer writeBuffersWrapper(const char *ArgData, size_t ArgSize)
static llvm::orc::shared::CWrapperFunctionBuffer readStringsWrapper(const char *ArgData, size_t ArgSize)
static llvm::orc::shared::CWrapperFunctionBuffer readUIntsWrapper(const char *ArgData, size_t ArgSize)
SPSMemoryAccessUIntWrite< uint8_t > SPSMemoryAccessUInt8Write
SPSMemoryAccessUIntWrite< uint16_t > SPSMemoryAccessUInt16Write
SPSMemoryAccessUIntWrite< uint64_t > SPSMemoryAccessUInt64Write
SPSMemoryAccessUIntWrite< uint32_t > SPSMemoryAccessUInt32Write
UIntWrite< uint64_t > UInt64Write
Describes a write to a uint64_t.
UIntWrite< uint8_t > UInt8Write
Describes a write to a uint8_t.
UIntWrite< uint32_t > UInt32Write
Describes a write to a uint32_t.
UIntWrite< uint16_t > UInt16Write
Describes a write to a uint16_t.
LLVM_ABI int runAsVoidFunction(int(*Func)(void))
LLVM_ABI int runAsIntFunction(int(*Func)(int), int Arg)
LLVM_ABI int runAsMain(int(*Main)(int, char *[]), ArrayRef< std::string > Args, std::optional< StringRef > ProgramName=std::nullopt)
Run a main function, returning the result.
LLVM_ABI std::string getProcessTriple()
getProcessTriple() - Return an appropriate target triple for generating code to be loaded into the cu...
This is an optimization pass for GlobalISel generic memory operations.
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name
static constexpr SymbolNameSpec Name