LLVM  16.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"

Collaboration diagram for LiveDebugValues::DbgValue:
Collaboration graph
[legend]

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. More...
 
DbgValueProperties Properties
 Qualifiers for the ValueIDNum above. More...
 
KindT Kind
 Discriminator for whether this is a constant or an in-program value. More...
 

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 435 of file InstrRefBasedImpl.h.

Member Enumeration Documentation

◆ KindT

Enumerator
Undef 
Def 
VPHI 
NoVal 

Definition at line 451 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 484 of file InstrRefBasedImpl.h.

References assert().

◆ DbgValue() [3/3]

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

Definition at line 489 of file InstrRefBasedImpl.h.

References assert(), and llvm::RegState::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 524 of file InstrRefBasedImpl.h.

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

Referenced by dump().

◆ getDbgOpIDs()

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

Definition at line 519 of file InstrRefBasedImpl.h.

Referenced by dump().

◆ getLocationOpCount()

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

◆ hasIdenticalValidLocOps()

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

Definition at line 565 of file InstrRefBasedImpl.h.

References llvm::lltok::equal, and Other.

◆ hasJoinableLocOps()

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

Definition at line 553 of file InstrRefBasedImpl.h.

References Other.

◆ isUnjoinedPHI()

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

Definition at line 563 of file InstrRefBasedImpl.h.

◆ operator!=()

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

Definition at line 515 of file InstrRefBasedImpl.h.

References Other.

◆ operator==()

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

Definition at line 500 of file InstrRefBasedImpl.h.

References llvm::tgtok::Def, llvm::lltok::equal, and Other.

◆ setDbgOpIDs()

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

Definition at line 534 of file InstrRefBasedImpl.h.

References assert(), 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 446 of file InstrRefBasedImpl.h.

Referenced by dump().

◆ Kind

KindT LiveDebugValues::DbgValue::Kind

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

Definition at line 461 of file InstrRefBasedImpl.h.

Referenced by dump().

◆ Properties

DbgValueProperties LiveDebugValues::DbgValue::Properties

Qualifiers for the ValueIDNum above.

Definition at line 449 of file InstrRefBasedImpl.h.

Referenced by dump().


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