LLVM 22.0.0git
|
Flags for symbols in the JIT. More...
#include "llvm/ExecutionEngine/JITSymbol.h"
Public Types | |
enum | FlagNames : UnderlyingType { None = 0 , HasError = 1U << 0 , Weak = 1U << 1 , Common = 1U << 2 , Absolute = 1U << 3 , Exported = 1U << 4 , Callable = 1U << 5 , MaterializationSideEffectsOnly = 1U << 6 , LLVM_MARK_AS_BITMASK_ENUM } |
using | UnderlyingType = uint8_t |
using | TargetFlagsType = uint8_t |
Public Member Functions | |
JITSymbolFlags ()=default | |
Default-construct a JITSymbolFlags instance. | |
JITSymbolFlags (FlagNames Flags) | |
Construct a JITSymbolFlags instance from the given flags. | |
JITSymbolFlags (FlagNames Flags, TargetFlagsType TargetFlags) | |
Construct a JITSymbolFlags instance from the given flags and target flags. | |
operator bool () const | |
Implicitly convert to bool. Returns true if any flag is set. | |
bool | operator== (const JITSymbolFlags &RHS) const |
Compare for equality. | |
JITSymbolFlags & | operator&= (const FlagNames &RHS) |
Bitwise AND-assignment for FlagNames. | |
JITSymbolFlags & | operator|= (const FlagNames &RHS) |
Bitwise OR-assignment for FlagNames. | |
bool | hasError () const |
Return true if there was an error retrieving this symbol. | |
bool | isWeak () const |
Returns true if the Weak flag is set. | |
bool | isCommon () const |
Returns true if the Common flag is set. | |
bool | isStrong () const |
Returns true if the symbol isn't weak or common. | |
bool | isExported () const |
Returns true if the Exported flag is set. | |
bool | isCallable () const |
Returns true if the given symbol is known to be callable. | |
bool | hasMaterializationSideEffectsOnly () const |
Returns true if this symbol is a materialization-side-effects-only symbol. | |
UnderlyingType | getRawFlagsValue () const |
Get the underlying flags value as an integer. | |
TargetFlagsType & | getTargetFlags () |
Return a reference to the target-specific flags. | |
const TargetFlagsType & | getTargetFlags () const |
Return a reference to the target-specific flags. | |
Static Public Member Functions | |
static LLVM_ABI JITSymbolFlags | fromGlobalValue (const GlobalValue &GV) |
Construct a JITSymbolFlags value based on the flags of the given global value. | |
static LLVM_ABI JITSymbolFlags | fromSummary (GlobalValueSummary *S) |
Construct a JITSymbolFlags value based on the flags of the given global value summary. | |
static LLVM_ABI Expected< JITSymbolFlags > | fromObjectSymbol (const object::SymbolRef &Symbol) |
Construct a JITSymbolFlags value based on the flags of the given libobject symbol. | |
Flags for symbols in the JIT.
Definition at line 75 of file JITSymbol.h.
Definition at line 78 of file JITSymbol.h.
Definition at line 77 of file JITSymbol.h.
Enumerator | |
---|---|
None | |
HasError | |
Weak | |
Common | |
Absolute | |
Exported | |
Callable | |
MaterializationSideEffectsOnly | |
LLVM_MARK_AS_BITMASK_ENUM |
Definition at line 80 of file JITSymbol.h.
|
default |
Default-construct a JITSymbolFlags instance.
|
inline |
Construct a JITSymbolFlags instance from the given flags.
Definition at line 97 of file JITSymbol.h.
|
inline |
Construct a JITSymbolFlags instance from the given flags and target flags.
Definition at line 101 of file JITSymbol.h.
|
static |
Construct a JITSymbolFlags value based on the flags of the given global value.
Definition at line 22 of file JITSymbol.cpp.
References assert(), Callable, Common, DL, llvm::StringRef::empty(), Exported, llvm::StringRef::front(), llvm::Value::getName(), llvm::GlobalValue::getParent(), llvm::GlobalValue::hasCommonLinkage(), llvm::GlobalValue::hasHiddenVisibility(), llvm::GlobalValue::hasLinkOnceLinkage(), llvm::GlobalValue::hasLocalLinkage(), llvm::Value::hasName(), llvm::GlobalValue::hasWeakLinkage(), None, llvm::StringRef::starts_with(), llvm::StringRef::substr(), and Weak.
Referenced by llvm::orc::IRSymbolMapper::add(), and llvm::orc::IRMaterializationUnit::IRMaterializationUnit().
|
static |
Construct a JITSymbolFlags value based on the flags of the given libobject symbol.
Definition at line 69 of file JITSymbol.cpp.
References Callable, Common, Exported, None, llvm::object::BasicSymbolRef::SF_Common, llvm::object::BasicSymbolRef::SF_Exported, llvm::object::BasicSymbolRef::SF_Weak, llvm::object::SymbolRef::ST_Function, llvm::Expected< T >::takeError(), and Weak.
Referenced by llvm::orc::RTDyldObjectLinkingLayer::emit(), llvm::orc::getCOFFObjectFileSymbolInfo(), llvm::orc::getELFObjectFileSymbolInfo(), llvm::orc::getGenericObjectFileSymbolInfo(), llvm::RuntimeDyldImpl::getJITSymbolFlags(), llvm::orc::getMachOObjectFileSymbolInfo(), and llvm::orc::getXCOFFObjectFileSymbolInfo().
|
static |
Construct a JITSymbolFlags value based on the flags of the given global value summary.
Definition at line 52 of file JITSymbol.cpp.
References Callable, Common, Exported, llvm::GlobalValue::isCommonLinkage(), llvm::GlobalValue::isExternalLinkage(), llvm::GlobalValue::isExternalWeakLinkage(), llvm::GlobalValue::isLinkOnceLinkage(), llvm::GlobalValue::isWeakLinkage(), llvm::GlobalValueSummary::linkage(), None, and Weak.
|
inline |
Get the underlying flags value as an integer.
Definition at line 168 of file JITSymbol.h.
|
inline |
Return a reference to the target-specific flags.
Definition at line 173 of file JITSymbol.h.
Referenced by LLVMOrcLazyCallThroughManagerRef::fromJITSymbolFlags(), and LLVMOrcLazyCallThroughManagerRef::toJITSymbolFlags().
|
inline |
Return a reference to the target-specific flags.
Definition at line 176 of file JITSymbol.h.
|
inline |
Return true if there was an error retrieving this symbol.
Definition at line 125 of file JITSymbol.h.
References HasError.
Referenced by llvm::JITSymbol::getAddress(), llvm::JITSymbol::JITSymbol(), llvm::JITSymbol::operator bool(), llvm::JITSymbol::operator=(), llvm::JITSymbol::takeError(), and llvm::JITSymbol::~JITSymbol().
|
inline |
Returns true if this symbol is a materialization-side-effects-only symbol.
Such symbols do not have a real address. They exist to trigger and support synchronization of materialization side effects, e.g. for collecting initialization information. These symbols will vanish from the symbol table immediately upon reaching the ready state, and will appear to queries as if they were never defined (except that query callback execution will be delayed until they reach the ready state). MaterializationSideEffectOnly symbols should only be queried using the SymbolLookupFlags::WeaklyReferencedSymbol flag (see llvm/include/llvm/ExecutionEngine/Orc/Core.h).
Definition at line 162 of file JITSymbol.h.
References MaterializationSideEffectsOnly.
|
inline |
Returns true if the given symbol is known to be callable.
Definition at line 150 of file JITSymbol.h.
References Callable.
|
inline |
Returns true if the Common flag is set.
Definition at line 135 of file JITSymbol.h.
References Common.
Referenced by isStrong().
|
inline |
Returns true if the Exported flag is set.
Definition at line 145 of file JITSymbol.h.
References Exported.
|
inline |
Returns true if the symbol isn't weak or common.
Definition at line 140 of file JITSymbol.h.
References isCommon(), and isWeak().
|
inline |
Returns true if the Weak flag is set.
Definition at line 130 of file JITSymbol.h.
References Weak.
Referenced by isStrong().
|
inlineexplicit |
Implicitly convert to bool. Returns true if any flag is set.
Definition at line 105 of file JITSymbol.h.
References None.
|
inline |
|
inline |
|
inline |