LLVM 22.0.0git
|
Base class for tracking ValueAsMetadata/DIArgLists with user lookups and Owner callbacks outside of ValueAsMetadata. More...
#include "llvm/IR/Metadata.h"
Public Member Functions | |
LLVM_ABI DbgVariableRecord * | getUser () |
LLVM_ABI const DbgVariableRecord * | getUser () const |
LLVM_ABI void | handleChangedValue (void *Old, Metadata *NewDebugValue) |
To be called by ReplaceableMetadataImpl::replaceAllUsesWith, where Old is a pointer to one of the pointers in DebugValues (so should be type Metadata**), and NewDebugValue is the new Metadata* that is replacing *Old. | |
DebugValueUser ()=default | |
DebugValueUser (std::array< Metadata *, 3 > DebugValues) | |
DebugValueUser (DebugValueUser &&X) | |
DebugValueUser (const DebugValueUser &X) | |
DebugValueUser & | operator= (DebugValueUser &&X) |
DebugValueUser & | operator= (const DebugValueUser &X) |
~DebugValueUser () | |
void | resetDebugValues () |
void | resetDebugValue (size_t Idx, Metadata *DebugValue) |
bool | operator== (const DebugValueUser &X) const |
bool | operator!= (const DebugValueUser &X) const |
Protected Member Functions | |
ArrayRef< Metadata * > | getDebugValues () const |
Protected Attributes | |
std::array< Metadata *, 3 > | DebugValues |
Base class for tracking ValueAsMetadata/DIArgLists with user lookups and Owner callbacks outside of ValueAsMetadata.
Currently only inherited by DbgVariableRecord; if other classes need to use it, then a SubclassID will need to be added (either as a new field or by making DebugValue into a PointerIntUnion) to discriminate between the subclasses in lookup and callback handling.
Definition at line 219 of file Metadata.h.
|
default |
Referenced by DebugValueUser(), DebugValueUser(), operator!=(), operator=(), operator=(), and operator==().
|
inlineexplicit |
Definition at line 240 of file Metadata.h.
References DebugValues.
|
inline |
Definition at line 244 of file Metadata.h.
References DebugValues, DebugValueUser(), and X.
|
inline |
Definition at line 248 of file Metadata.h.
References DebugValues, DebugValueUser(), and X.
|
inline |
Definition at line 273 of file Metadata.h.
Definition at line 227 of file Metadata.h.
References DebugValues.
DbgVariableRecord * DebugValueUser::getUser | ( | ) |
Definition at line 151 of file Metadata.cpp.
const DbgVariableRecord * DebugValueUser::getUser | ( | ) | const |
Definition at line 154 of file Metadata.cpp.
void DebugValueUser::handleChangedValue | ( | void * | Old, |
Metadata * | NewDebugValue ) |
To be called by ReplaceableMetadataImpl::replaceAllUsesWith, where Old is a pointer to one of the pointers in DebugValues (so should be type Metadata**), and NewDebugValue is the new Metadata* that is replacing *Old.
For manually replacing elements of DebugValues, resetDebugValue(Idx, NewDebugValue) should be used instead.
Definition at line 158 of file Metadata.cpp.
References llvm::cast(), DebugValues, llvm::PoisonValue::get(), llvm::ValueAsMetadata::get(), llvm::isa(), and resetDebugValue().
|
inline |
Definition at line 290 of file Metadata.h.
References DebugValues, DebugValueUser(), and X.
|
inline |
Definition at line 263 of file Metadata.h.
References DebugValues, DebugValueUser(), and X.
|
inline |
Definition at line 253 of file Metadata.h.
References DebugValues, DebugValueUser(), and X.
|
inline |
Definition at line 287 of file Metadata.h.
References DebugValues, DebugValueUser(), and X.
|
inline |
Definition at line 280 of file Metadata.h.
References assert(), and DebugValues.
Referenced by handleChangedValue(), llvm::DbgVariableRecord::setAddress(), llvm::DbgVariableRecord::setAssignId(), llvm::DbgVariableRecord::setKillAddress(), and llvm::DbgVariableRecord::setRawLocation().
|
inline |
Definition at line 275 of file Metadata.h.
References DebugValues.
|
protected |
Definition at line 225 of file Metadata.h.
Referenced by llvm::DbgVariableRecord::DbgVariableRecord(), DebugValueUser(), DebugValueUser(), DebugValueUser(), llvm::DbgVariableRecord::getAssignID(), getDebugValues(), llvm::DbgVariableRecord::getRawAddress(), llvm::DbgVariableRecord::getRawAssignID(), llvm::DbgVariableRecord::getRawLocation(), handleChangedValue(), llvm::DbgVariableRecord::isIdenticalToWhenDefined(), operator!=(), operator=(), operator=(), operator==(), resetDebugValue(), and resetDebugValues().