LLVM 20.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 | |
DbgVariableRecord * | getUser () |
const DbgVariableRecord * | getUser () const |
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 212 of file Metadata.h.
|
default |
|
inlineexplicit |
Definition at line 233 of file Metadata.h.
|
inline |
Definition at line 237 of file Metadata.h.
References DebugValues, and X.
|
inline |
Definition at line 241 of file Metadata.h.
References DebugValues, and X.
|
inline |
Definition at line 266 of file Metadata.h.
Definition at line 220 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 DebugValues, llvm::PoisonValue::get(), llvm::ValueAsMetadata::get(), Idx, and resetDebugValue().
|
inline |
Definition at line 283 of file Metadata.h.
References DebugValues, and X.
|
inline |
Definition at line 256 of file Metadata.h.
References DebugValues, and X.
|
inline |
Definition at line 246 of file Metadata.h.
References DebugValues, and X.
|
inline |
Definition at line 280 of file Metadata.h.
References DebugValues, and X.
|
inline |
Definition at line 273 of file Metadata.h.
References assert(), DebugValues, and Idx.
Referenced by handleChangedValue(), llvm::DbgVariableRecord::setAddress(), llvm::DbgVariableRecord::setAssignId(), llvm::DbgVariableRecord::setKillAddress(), and llvm::DbgVariableRecord::setRawLocation().
|
inline |
Definition at line 268 of file Metadata.h.
References DebugValues.
|
protected |
Definition at line 218 of file Metadata.h.
Referenced by DebugValueUser(), llvm::DbgVariableRecord::getAssignID(), getDebugValues(), llvm::DbgVariableRecord::getRawAddress(), llvm::DbgVariableRecord::getRawAssignID(), llvm::DbgVariableRecord::getRawLocation(), handleChangedValue(), llvm::DbgVariableRecord::isIdenticalToWhenDefined(), operator!=(), operator=(), operator==(), resetDebugValue(), and resetDebugValues().