LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::DebugVariable Class Reference

Identifies a unique instance of a variable. More...

#include "llvm/IR/DebugInfoMetadata.h"

Inheritance diagram for llvm::DebugVariable:
Inheritance graph
[legend]

Public Member Functions

 DebugVariable (const DbgVariableIntrinsic *DII)
 
 DebugVariable (const DbgVariableRecord *DVR)
 
 DebugVariable (const DILocalVariable *Var, std::optional< FragmentInfo > FragmentInfo, const DILocation *InlinedAt)
 
 DebugVariable (const DILocalVariable *Var, const DIExpression *DIExpr, const DILocation *InlinedAt)
 
const DILocalVariablegetVariable () const
 
std::optional< FragmentInfogetFragment () const
 
const DILocationgetInlinedAt () const
 
FragmentInfo getFragmentOrDefault () const
 
bool operator== (const DebugVariable &Other) const
 
bool operator< (const DebugVariable &Other) const
 

Static Public Member Functions

static bool isDefaultFragment (const FragmentInfo F)
 

Detailed Description

Identifies a unique instance of a variable.

Storage for identifying a potentially inlined instance of a variable, or a fragment thereof. This guarantees that exactly one variable instance may be identified by this class, even when that variable is a fragment of an aggregate variable and/or there is another inlined instance of the same source code variable nearby. This class does not necessarily uniquely identify that variable: it is possible that a DebugVariable with different parameters may point to the same variable instance, but not that one DebugVariable points to multiple variable instances.

Definition at line 4024 of file DebugInfoMetadata.h.

Constructor & Destructor Documentation

◆ DebugVariable() [1/4]

DebugVariable::DebugVariable ( const DbgVariableIntrinsic DII)

Definition at line 44 of file DebugInfoMetadata.cpp.

◆ DebugVariable() [2/4]

DebugVariable::DebugVariable ( const DbgVariableRecord DVR)

Definition at line 49 of file DebugInfoMetadata.cpp.

◆ DebugVariable() [3/4]

llvm::DebugVariable::DebugVariable ( const DILocalVariable Var,
std::optional< FragmentInfo FragmentInfo,
const DILocation InlinedAt 
)
inline

Definition at line 4039 of file DebugInfoMetadata.h.

◆ DebugVariable() [4/4]

llvm::DebugVariable::DebugVariable ( const DILocalVariable Var,
const DIExpression DIExpr,
const DILocation InlinedAt 
)
inline

Definition at line 4044 of file DebugInfoMetadata.h.

Member Function Documentation

◆ getFragment()

std::optional< FragmentInfo > llvm::DebugVariable::getFragment ( ) const
inline

Definition at line 4051 of file DebugInfoMetadata.h.

Referenced by LiveDebugValues::MLocTracker::emitLoc().

◆ getFragmentOrDefault()

FragmentInfo llvm::DebugVariable::getFragmentOrDefault ( ) const
inline

◆ getInlinedAt()

const DILocation * llvm::DebugVariable::getInlinedAt ( ) const
inline

◆ getVariable()

const DILocalVariable * llvm::DebugVariable::getVariable ( ) const
inline

◆ isDefaultFragment()

static bool llvm::DebugVariable::isDefaultFragment ( const FragmentInfo  F)
inlinestatic

Definition at line 4058 of file DebugInfoMetadata.h.

References F.

Referenced by LiveDebugValues::VLocTracker::considerOverlaps().

◆ operator<()

bool llvm::DebugVariable::operator< ( const DebugVariable Other) const
inline

Definition at line 4067 of file DebugInfoMetadata.h.

References llvm::Other.

◆ operator==()

bool llvm::DebugVariable::operator== ( const DebugVariable Other) const
inline

Definition at line 4062 of file DebugInfoMetadata.h.

References llvm::Other.


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