LLVM: llvm::JITSymbolFlags Class Reference (original) (raw)

Flags for symbols in the JIT. More...

#include "[llvm/ExecutionEngine/JITSymbol.h](JITSymbol%5F8h%5Fsource.html)"

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.

TargetFlagsType

UnderlyingType

FlagNames

Enumerator
None
HasError
Weak
Common
Absolute
Exported
Callable
MaterializationSideEffectsOnly
LLVM_MARK_AS_BITMASK_ENUM

Definition at line 80 of file JITSymbol.h.

llvm::JITSymbolFlags::JITSymbolFlags ( ) default

JITSymbolFlags() [2/3]

llvm::JITSymbolFlags::JITSymbolFlags ( FlagNames Flags) inline

JITSymbolFlags() [3/3]

llvm::JITSymbolFlags::JITSymbolFlags ( FlagNames Flags, TargetFlagsType TargetFlags ) inline

fromGlobalValue()

Construct a JITSymbolFlags value based on the flags of the given global value.

Definition at line 22 of file JITSymbol.cpp.

References assert(), Callable, llvm::cast(), 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(), llvm::isa(), JITSymbolFlags(), None, llvm::StringRef::starts_with(), llvm::StringRef::substr(), and Weak.

Referenced by llvm::orc::IRSymbolMapper::add(), and llvm::orc::IRMaterializationUnit::IRMaterializationUnit().

fromObjectSymbol()

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, JITSymbolFlags(), 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().

fromSummary()

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::isa(), llvm::GlobalValue::isCommonLinkage(), llvm::GlobalValue::isExternalLinkage(), llvm::GlobalValue::isExternalWeakLinkage(), llvm::GlobalValue::isLinkOnceLinkage(), llvm::GlobalValue::isWeakLinkage(), JITSymbolFlags(), llvm::GlobalValueSummary::linkage(), None, and Weak.

getRawFlagsValue()

UnderlyingType llvm::JITSymbolFlags::getRawFlagsValue ( ) const inline

Get the underlying flags value as an integer.

Definition at line 168 of file JITSymbol.h.

getTargetFlags() [1/2]

TargetFlagsType & llvm::JITSymbolFlags::getTargetFlags ( ) inline

getTargetFlags() [2/2]

const TargetFlagsType & llvm::JITSymbolFlags::getTargetFlags ( ) const inline

Return a reference to the target-specific flags.

Definition at line 176 of file JITSymbol.h.

hasError()

bool llvm::JITSymbolFlags::hasError ( ) const inline

Return true if there was an error retrieving this symbol.

Definition at line 125 of file JITSymbol.h.

References HasError.

hasMaterializationSideEffectsOnly()

bool llvm::JITSymbolFlags::hasMaterializationSideEffectsOnly ( ) const 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.

Referenced by llvm::orc::AsynchronousSymbolQuery::notifySymbolMetRequiredState().

isCallable()

bool llvm::JITSymbolFlags::isCallable ( ) const inline

Returns true if the given symbol is known to be callable.

Definition at line 150 of file JITSymbol.h.

References Callable.

isCommon()

bool llvm::JITSymbolFlags::isCommon ( ) const inline

isExported()

bool llvm::JITSymbolFlags::isExported ( ) const inline

isStrong()

bool llvm::JITSymbolFlags::isStrong ( ) const inline

isWeak()

bool llvm::JITSymbolFlags::isWeak ( ) const inline

operator bool()

llvm::JITSymbolFlags::operator bool ( ) const inlineexplicit

Implicitly convert to bool. Returns true if any flag is set.

Definition at line 105 of file JITSymbol.h.

References None.

operator&=()

operator==()

operator|=()


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