LLVM 20.0.0git
Classes | Namespaces | Typedefs | Functions
WrapperFunctionUtils.h File Reference
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
#include "llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h"
#include "llvm/Support/Error.h"
#include <type_traits>

Go to the source code of this file.

Classes

union  llvm::orc::shared::CWrapperFunctionResultDataUnion
 
struct  llvm::orc::shared::CWrapperFunctionResult
 
class  llvm::orc::shared::WrapperFunctionResult
 C++ wrapper function result: Same as CWrapperFunctionResult but auto-releases memory. More...
 
class  llvm::orc::shared::detail::WrapperFunctionHandlerCaller< RetT >
 
class  llvm::orc::shared::detail::WrapperFunctionHandlerCaller< void >
 
class  llvm::orc::shared::detail::WrapperFunctionHandlerHelper< WrapperFunctionImplT, ResultSerializer, SPSTagTs >
 
class  llvm::orc::shared::detail::WrapperFunctionHandlerHelper< RetT(ArgTs...), ResultSerializer, SPSTagTs... >
 
class  llvm::orc::shared::detail::WrapperFunctionHandlerHelper< RetT(*)(ArgTs...), ResultSerializer, SPSTagTs... >
 
class  llvm::orc::shared::detail::WrapperFunctionHandlerHelper< RetT(ClassT::*)(ArgTs...), ResultSerializer, SPSTagTs... >
 
class  llvm::orc::shared::detail::WrapperFunctionHandlerHelper< RetT(ClassT::*)(ArgTs...) const, ResultSerializer, SPSTagTs... >
 
class  llvm::orc::shared::detail::WrapperFunctionAsyncHandlerHelper< WrapperFunctionImplT, ResultSerializer, SPSTagTs >
 
class  llvm::orc::shared::detail::WrapperFunctionAsyncHandlerHelper< RetT(SendResultT, ArgTs...), ResultSerializer, SPSTagTs... >
 
class  llvm::orc::shared::detail::WrapperFunctionAsyncHandlerHelper< RetT(*)(ArgTs...), ResultSerializer, SPSTagTs... >
 
class  llvm::orc::shared::detail::WrapperFunctionAsyncHandlerHelper< RetT(ClassT::*)(ArgTs...), ResultSerializer, SPSTagTs... >
 
class  llvm::orc::shared::detail::WrapperFunctionAsyncHandlerHelper< RetT(ClassT::*)(ArgTs...) const, ResultSerializer, SPSTagTs... >
 
class  llvm::orc::shared::detail::ResultSerializer< SPSRetTagT, RetT >
 
class  llvm::orc::shared::detail::ResultSerializer< SPSRetTagT, Error >
 
class  llvm::orc::shared::detail::ResultSerializer< SPSRetTagT, ErrorSuccess >
 
class  llvm::orc::shared::detail::ResultSerializer< SPSRetTagT, Expected< T > >
 
class  llvm::orc::shared::detail::ResultDeserializer< SPSRetTagT, RetT >
 
class  llvm::orc::shared::detail::ResultDeserializer< SPSError, Error >
 
class  llvm::orc::shared::detail::ResultDeserializer< SPSExpected< SPSTagT >, Expected< T > >
 
class  llvm::orc::shared::detail::AsyncCallResultHelper< SPSRetTagT, RetT >
 
class  llvm::orc::shared::WrapperFunction< SPSRetTagT(SPSTagTs...)>
 
class  llvm::orc::shared::WrapperFunction< void(SPSTagTs...)>
 
class  llvm::orc::shared::MethodWrapperHandler< RetT, ClassT, ArgTs >
 A function object that takes an ExecutorAddr as its first argument, casts that address to a ClassT*, then calls the given method on that pointer passing in the remaining function arguments. More...
 
class  llvm::orc::shared::WrapperFunctionCall
 Represents a serialized wrapper function call. More...
 
class  llvm::orc::shared::SPSSerializationTraits< SPSWrapperFunctionCall, WrapperFunctionCall >
 

Namespaces

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

Typedefs

using llvm::orc::shared::SPSWrapperFunctionCall = SPSTuple< SPSExecutorAddr, SPSSequence< char > >
 

Functions

template<typename SPSArgListT , typename... ArgTs>
WrapperFunctionResult llvm::orc::shared::detail::serializeViaSPSToWrapperFunctionResult (const ArgTs &...Args)
 
template<typename RetT , typename ClassT , typename... ArgTs>
MethodWrapperHandler< RetT, ClassT, ArgTs... > llvm::orc::shared::makeMethodWrapperHandler (RetT(ClassT::*Method)(ArgTs...))
 Create a MethodWrapperHandler object from the given method pointer.