LLVM 22.0.0git
|
#include "llvm/ADT/FunctionExtras.h"
Classes | |
struct | AdjustedParamTBase |
struct | AdjustedParamTBase< T & > |
struct | AdjustedParamTBase< T && > |
struct | CallbacksHolder |
struct | CalledAs |
struct | NonTrivialCallbacks |
A struct we use to aggregate three callbacks when we need full set of operations. More... | |
union | StorageUnionT |
struct | TrivialCallback |
A struct to hold a single trivial callback with sufficient alignment for our bitpacking. More... |
Public Member Functions | |
operator bool () const |
Protected Types | |
template<typename T> | |
using | AdjustedParamT = typename AdjustedParamTBase<T>::type |
using | CallPtrT |
using | MovePtrT = void (*)(void *LHSCallableAddr, void *RHSCallableAddr) |
using | DestroyPtrT = void (*)(void *CallableAddr) |
using | CallbackPointerUnionT |
Protected Member Functions | |
bool | isInlineStorage () const |
bool | isTrivialCallback () const |
CallPtrT | getTrivialCallback () const |
NonTrivialCallbacks * | getNonTrivialCallbacks () const |
CallPtrT | getCallPtr () const |
void * | getCalleePtr () const |
void * | getInlineStorage () const |
void * | getOutOfLineStorage () const |
size_t | getOutOfLineStorageSize () const |
size_t | getOutOfLineStorageAlignment () const |
void | setOutOfLineStorage (void *Ptr, size_t Size, size_t Alignment) |
template<typename CallableT, typename CalledAsT> | |
UniqueFunctionBase (CallableT Callable, CalledAs< CalledAsT >) | |
~UniqueFunctionBase () | |
UniqueFunctionBase (UniqueFunctionBase &&RHS) noexcept | |
UniqueFunctionBase & | operator= (UniqueFunctionBase &&RHS) noexcept |
UniqueFunctionBase ()=default |
Static Protected Member Functions | |
template<typename CalledAsT> | |
static ReturnT | CallImpl (void *CallableAddr, AdjustedParamT< ParamTs >... Params) |
template<typename CallableT> | |
static void | MoveImpl (void *LHSCallableAddr, void *RHSCallableAddr) noexcept |
template<typename CallableT> | |
static void | DestroyImpl (void *CallableAddr) noexcept |
Protected Attributes | |
union llvm::detail::UniqueFunctionBase::StorageUnionT | StorageUnion |
PointerIntPair< CallbackPointerUnionT, 1, bool > | CallbackAndInlineFlag |
Static Protected Attributes | |
static constexpr size_t | InlineStorageSize = sizeof(void *) * 3 |
static constexpr size_t | InlineStorageAlign = alignof(void *) |
Definition at line 76 of file FunctionExtras.h.
|
protected |
Definition at line 109 of file FunctionExtras.h.
|
protected |
Definition at line 135 of file FunctionExtras.h.
|
protected |
Definition at line 113 of file FunctionExtras.h.
|
protected |
Definition at line 116 of file FunctionExtras.h.
|
protected |
Definition at line 115 of file FunctionExtras.h.
|
inlineprotected |
Definition at line 254 of file FunctionExtras.h.
|
inlineprotected |
Definition at line 274 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::operator=().
|
inlineprotectednoexcept |
Definition at line 290 of file FunctionExtras.h.
|
protecteddefault |
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::operator=().
|
inlinestaticprotected |
Definition at line 210 of file FunctionExtras.h.
|
inlinestaticprotectednoexcept |
Definition at line 223 of file FunctionExtras.h.
|
inlineprotected |
Definition at line 190 of file FunctionExtras.h.
|
inlineprotected |
Definition at line 179 of file FunctionExtras.h.
|
inlineprotected |
Definition at line 193 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::getCalleePtr(), llvm::detail::UniqueFunctionBase< R, P... >::UniqueFunctionBase(), llvm::detail::UniqueFunctionBase< R, P... >::UniqueFunctionBase(), and llvm::detail::UniqueFunctionBase< R, P... >::~UniqueFunctionBase().
|
inlineprotected |
Definition at line 175 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::getCallPtr(), llvm::detail::UniqueFunctionBase< R, P... >::UniqueFunctionBase(), and llvm::detail::UniqueFunctionBase< R, P... >::~UniqueFunctionBase().
|
inlineprotected |
Definition at line 194 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::getCalleePtr(), and llvm::detail::UniqueFunctionBase< R, P... >::~UniqueFunctionBase().
|
inlineprotected |
Definition at line 201 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::~UniqueFunctionBase().
|
inlineprotected |
Definition at line 198 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::~UniqueFunctionBase().
|
inlineprotected |
Definition at line 171 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::getCallPtr().
|
inlineprotected |
Definition at line 165 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::getCalleePtr(), llvm::detail::UniqueFunctionBase< R, P... >::UniqueFunctionBase(), and llvm::detail::UniqueFunctionBase< R, P... >::~UniqueFunctionBase().
|
inlineprotected |
Definition at line 167 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::getCallPtr(), llvm::detail::UniqueFunctionBase< R, P... >::UniqueFunctionBase(), and llvm::detail::UniqueFunctionBase< R, P... >::~UniqueFunctionBase().
|
inlinestaticprotectednoexcept |
Definition at line 217 of file FunctionExtras.h.
|
inlineexplicit |
Definition at line 337 of file FunctionExtras.h.
|
inlineprotectednoexcept |
Definition at line 322 of file FunctionExtras.h.
|
inlineprotected |
Definition at line 205 of file FunctionExtras.h.
Referenced by llvm::detail::UniqueFunctionBase< R, P... >::UniqueFunctionBase().
|
protected |
Definition at line 163 of file FunctionExtras.h.
|
staticconstexprprotected |
Definition at line 79 of file FunctionExtras.h.
|
staticconstexprprotected |
Definition at line 78 of file FunctionExtras.h.
|
protected |