LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | Friends | List of all members
llvm::orc::ExecutorSymbolDef Class Reference

Represents a defining location for a JIT symbol. More...

#include "llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h"

Public Member Functions

template<typename T , typename WrapFn = ExecutorAddr::defaultWrap<std::remove_pointer_t<T>>>
std::enable_if_t< std::is_pointer< T >::value, TtoPtr (WrapFn &&Wrap=WrapFn()) const
 Cast this ExecutorSymbolDef to a pointer of the given type.
 
template<typename T , typename WrapFn = ExecutorAddr::defaultWrap<T>>
std::enable_if_t< std::is_function< T >::value, T * > toPtr (WrapFn &&Wrap=WrapFn()) const
 Cast this ExecutorSymbolDef to a pointer of the given function type.
 
 ExecutorSymbolDef ()=default
 
 ExecutorSymbolDef (ExecutorAddr Addr, JITSymbolFlags Flags)
 
const ExecutorAddrgetAddress () const
 
const JITSymbolFlagsgetFlags () const
 
void setFlags (JITSymbolFlags Flags)
 

Static Public Member Functions

template<typename T , typename UnwrapFn = ExecutorAddr::defaultUnwrap<T>>
static ExecutorSymbolDef fromPtr (T *Ptr, JITSymbolFlags BaseFlags=JITSymbolFlags(), UnwrapFn &&Unwrap=UnwrapFn())
 Create an ExecutorSymbolDef from the given pointer.
 

Friends

bool operator== (const ExecutorSymbolDef &LHS, const ExecutorSymbolDef &RHS)
 
bool operator!= (const ExecutorSymbolDef &LHS, const ExecutorSymbolDef &RHS)
 

Detailed Description

Represents a defining location for a JIT symbol.

Definition at line 24 of file ExecutorSymbolDef.h.

Constructor & Destructor Documentation

◆ ExecutorSymbolDef() [1/2]

llvm::orc::ExecutorSymbolDef::ExecutorSymbolDef ( )
default

Referenced by fromPtr().

◆ ExecutorSymbolDef() [2/2]

llvm::orc::ExecutorSymbolDef::ExecutorSymbolDef ( ExecutorAddr  Addr,
JITSymbolFlags  Flags 
)
inline

Definition at line 58 of file ExecutorSymbolDef.h.

References Addr.

Member Function Documentation

◆ fromPtr()

template<typename T , typename UnwrapFn = ExecutorAddr::defaultUnwrap<T>>
static ExecutorSymbolDef llvm::orc::ExecutorSymbolDef::fromPtr ( T Ptr,
JITSymbolFlags  BaseFlags = JITSymbolFlags(),
UnwrapFn &&  Unwrap = UnwrapFn() 
)
inlinestatic

Create an ExecutorSymbolDef from the given pointer.

Warning: This should only be used when JITing in-process.

Definition at line 29 of file ExecutorSymbolDef.h.

References llvm::JITSymbolFlags::Callable, ExecutorSymbolDef(), llvm::orc::ExecutorAddr::fromPtr(), and Ptr.

◆ getAddress()

const ExecutorAddr & llvm::orc::ExecutorSymbolDef::getAddress ( ) const
inline

◆ getFlags()

const JITSymbolFlags & llvm::orc::ExecutorSymbolDef::getFlags ( ) const
inline

◆ setFlags()

void llvm::orc::ExecutorSymbolDef::setFlags ( JITSymbolFlags  Flags)
inline

Definition at line 65 of file ExecutorSymbolDef.h.

◆ toPtr() [1/2]

template<typename T , typename WrapFn = ExecutorAddr::defaultWrap<std::remove_pointer_t<T>>>
std::enable_if_t< std::is_pointer< T >::value, T > llvm::orc::ExecutorSymbolDef::toPtr ( WrapFn &&  Wrap = WrapFn()) const
inline

Cast this ExecutorSymbolDef to a pointer of the given type.

Warning: This should only be used when JITing in-process.

Definition at line 45 of file ExecutorSymbolDef.h.

References llvm::orc::ExecutorAddr::toPtr().

◆ toPtr() [2/2]

template<typename T , typename WrapFn = ExecutorAddr::defaultWrap<T>>
std::enable_if_t< std::is_function< T >::value, T * > llvm::orc::ExecutorSymbolDef::toPtr ( WrapFn &&  Wrap = WrapFn()) const
inline

Cast this ExecutorSymbolDef to a pointer of the given function type.

Warning: This should only be used when JITing in-process.

Definition at line 53 of file ExecutorSymbolDef.h.

References llvm::orc::ExecutorAddr::toPtr().

Friends And Related Function Documentation

◆ operator!=

bool operator!= ( const ExecutorSymbolDef LHS,
const ExecutorSymbolDef RHS 
)
friend

Definition at line 73 of file ExecutorSymbolDef.h.

◆ operator==

bool operator== ( const ExecutorSymbolDef LHS,
const ExecutorSymbolDef RHS 
)
friend

Definition at line 67 of file ExecutorSymbolDef.h.


The documentation for this class was generated from the following file: