Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
llvm::DebugValueUser Class Reference

Base class for tracking ValueAsMetadata/DIArgLists with user lookups and Owner callbacks outside of ValueAsMetadata. More...

#include "llvm/IR/Metadata.h"

Inheritance diagram for llvm::DebugValueUser:
[legend]

Public Member Functions

LLVM_ABI DbgVariableRecordgetUser ()
LLVM_ABI const DbgVariableRecordgetUser () 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)
DebugValueUseroperator= (DebugValueUser &&X)
DebugValueUseroperator= (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

Detailed Description

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.

Constructor & Destructor Documentation

◆ DebugValueUser() [1/4]

llvm::DebugValueUser::DebugValueUser ( )
default

◆ DebugValueUser() [2/4]

llvm::DebugValueUser::DebugValueUser ( std::array< Metadata *, 3 > DebugValues)
inlineexplicit

Definition at line 240 of file Metadata.h.

References DebugValues.

◆ DebugValueUser() [3/4]

llvm::DebugValueUser::DebugValueUser ( DebugValueUser && X)
inline

Definition at line 244 of file Metadata.h.

References DebugValues, DebugValueUser(), and X.

◆ DebugValueUser() [4/4]

llvm::DebugValueUser::DebugValueUser ( const DebugValueUser & X)
inline

Definition at line 248 of file Metadata.h.

References DebugValues, DebugValueUser(), and X.

◆ ~DebugValueUser()

llvm::DebugValueUser::~DebugValueUser ( )
inline

Definition at line 273 of file Metadata.h.

Member Function Documentation

◆ getDebugValues()

ArrayRef< Metadata * > llvm::DebugValueUser::getDebugValues ( ) const
inlineprotected

Definition at line 227 of file Metadata.h.

References DebugValues.

◆ getUser() [1/2]

DbgVariableRecord * DebugValueUser::getUser ( )

Definition at line 151 of file Metadata.cpp.

◆ getUser() [2/2]

const DbgVariableRecord * DebugValueUser::getUser ( ) const

Definition at line 154 of file Metadata.cpp.

◆ handleChangedValue()

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

◆ operator!=()

bool llvm::DebugValueUser::operator!= ( const DebugValueUser & X) const
inline

Definition at line 290 of file Metadata.h.

References DebugValues, DebugValueUser(), and X.

◆ operator=() [1/2]

DebugValueUser & llvm::DebugValueUser::operator= ( const DebugValueUser & X)
inline

Definition at line 263 of file Metadata.h.

References DebugValues, DebugValueUser(), and X.

◆ operator=() [2/2]

DebugValueUser & llvm::DebugValueUser::operator= ( DebugValueUser && X)
inline

Definition at line 253 of file Metadata.h.

References DebugValues, DebugValueUser(), and X.

◆ operator==()

bool llvm::DebugValueUser::operator== ( const DebugValueUser & X) const
inline

Definition at line 287 of file Metadata.h.

References DebugValues, DebugValueUser(), and X.

◆ resetDebugValue()

void llvm::DebugValueUser::resetDebugValue ( size_t Idx,
Metadata * DebugValue )
inline

◆ resetDebugValues()

void llvm::DebugValueUser::resetDebugValues ( )
inline

Definition at line 275 of file Metadata.h.

References DebugValues.

Member Data Documentation

◆ DebugValues


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