LLVM 20.0.0git
Public Types | Public Member Functions | Public Attributes | List of all members
LiveDebugValues::DbgValue Class Reference

Class recording the (high level) value of a variable. More...

#include "CodeGen/LiveDebugValues/InstrRefBasedImpl.h"

Public Types

enum  KindT { Undef , Def , VPHI , NoVal }
 

Public Member Functions

 DbgValue (ArrayRef< DbgOpID > DbgOps, const DbgValueProperties &Prop)
 
 DbgValue (unsigned BlockNo, const DbgValueProperties &Prop, KindT Kind)
 
 DbgValue (const DbgValueProperties &Prop, KindT Kind)
 
void dump (const MLocTracker *MTrack=nullptr, const DbgOpIDMap *OpStore=nullptr) const
 
bool operator== (const DbgValue &Other) const
 
bool operator!= (const DbgValue &Other) const
 
ArrayRef< DbgOpIDgetDbgOpIDs () const
 
DbgOpID getDbgOpID (unsigned Index) const
 
void setDbgOpIDs (ArrayRef< DbgOpID > NewIDs)
 
unsigned getLocationOpCount () const
 
bool hasJoinableLocOps (const DbgValue &Other) const
 
bool isUnjoinedPHI () const
 
bool hasIdenticalValidLocOps (const DbgValue &Other) const
 

Public Attributes

int BlockNo
 For a NoVal or VPHI DbgValue, which block it was generated in.
 
DbgValueProperties Properties
 Qualifiers for the ValueIDNum above.
 
KindT Kind
 Discriminator for whether this is a constant or an in-program value.
 

Detailed Description

Class recording the (high level) value of a variable.

Identifies the value of the variable as a list of ValueIDNums and constant MachineOperands, or as an empty list for undef debug values or VPHI values which we have not found valid locations for. This class also stores meta-information about how the value is qualified. Used to reason about variable values when performing the second (DebugVariable specific) dataflow analysis.

Definition at line 512 of file InstrRefBasedImpl.h.

Member Enumeration Documentation

◆ KindT

Enumerator
Undef 
Def 
VPHI 
NoVal 

Definition at line 528 of file InstrRefBasedImpl.h.

Constructor & Destructor Documentation

◆ DbgValue() [1/3]

LiveDebugValues::DbgValue::DbgValue ( ArrayRef< DbgOpID DbgOps,
const DbgValueProperties Prop 
)
inline

◆ DbgValue() [2/3]

LiveDebugValues::DbgValue::DbgValue ( unsigned  BlockNo,
const DbgValueProperties Prop,
KindT  Kind 
)
inline

Definition at line 561 of file InstrRefBasedImpl.h.

References assert(), Kind, NoVal, and VPHI.

◆ DbgValue() [3/3]

LiveDebugValues::DbgValue::DbgValue ( const DbgValueProperties Prop,
KindT  Kind 
)
inline

Definition at line 566 of file InstrRefBasedImpl.h.

References assert(), Kind, and Undef.

Member Function Documentation

◆ dump()

void DbgValue::dump ( const MLocTracker MTrack = nullptr,
const DbgOpIDMap OpStore = nullptr 
) const

◆ getDbgOpID()

DbgOpID LiveDebugValues::DbgValue::getDbgOpID ( unsigned  Index) const
inline

Definition at line 601 of file InstrRefBasedImpl.h.

References assert(), Index, and LiveDebugValues::DbgOpID::UndefID.

Referenced by dump(), and hasJoinableLocOps().

◆ getDbgOpIDs()

ArrayRef< DbgOpID > LiveDebugValues::DbgValue::getDbgOpIDs ( ) const
inline

Definition at line 596 of file InstrRefBasedImpl.h.

Referenced by dump(), hasIdenticalValidLocOps(), and operator==().

◆ getLocationOpCount()

unsigned LiveDebugValues::DbgValue::getLocationOpCount ( ) const
inline

◆ hasIdenticalValidLocOps()

bool LiveDebugValues::DbgValue::hasIdenticalValidLocOps ( const DbgValue Other) const
inline

Definition at line 642 of file InstrRefBasedImpl.h.

References llvm::equal(), getDbgOpIDs(), and llvm::Other.

◆ hasJoinableLocOps()

bool LiveDebugValues::DbgValue::hasJoinableLocOps ( const DbgValue Other) const
inline

◆ isUnjoinedPHI()

bool LiveDebugValues::DbgValue::isUnjoinedPHI ( ) const
inline

Definition at line 640 of file InstrRefBasedImpl.h.

References Kind, and VPHI.

Referenced by hasJoinableLocOps().

◆ operator!=()

bool LiveDebugValues::DbgValue::operator!= ( const DbgValue Other) const
inline

Definition at line 592 of file InstrRefBasedImpl.h.

References llvm::Other.

◆ operator==()

bool LiveDebugValues::DbgValue::operator== ( const DbgValue Other) const
inline

Definition at line 577 of file InstrRefBasedImpl.h.

References BlockNo, Def, llvm::equal(), getDbgOpIDs(), Kind, NoVal, llvm::Other, Properties, and VPHI.

◆ setDbgOpIDs()

void LiveDebugValues::DbgValue::setDbgOpIDs ( ArrayRef< DbgOpID NewIDs)
inline

Definition at line 611 of file InstrRefBasedImpl.h.

References assert(), getLocationOpCount(), Idx, and llvm::ArrayRef< T >::size().

Member Data Documentation

◆ BlockNo

int LiveDebugValues::DbgValue::BlockNo

For a NoVal or VPHI DbgValue, which block it was generated in.

Definition at line 523 of file InstrRefBasedImpl.h.

Referenced by dump(), and operator==().

◆ Kind

KindT LiveDebugValues::DbgValue::Kind

Discriminator for whether this is a constant or an in-program value.

Definition at line 538 of file InstrRefBasedImpl.h.

Referenced by DbgValue(), dump(), isUnjoinedPHI(), and operator==().

◆ Properties

DbgValueProperties LiveDebugValues::DbgValue::Properties

Qualifiers for the ValueIDNum above.

Definition at line 526 of file InstrRefBasedImpl.h.

Referenced by dump(), getLocationOpCount(), and operator==().


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