LLVM 17.0.0git
|
This class is used to track local variable information. More...
#include "CodeGen/AsmPrinter/DwarfDebug.h"
Static Public Member Functions | |
static bool | classof (const DbgEntity *N) |
![]() | |
static bool | classof (const DbgEntity *N) |
Additional Inherited Members | |
![]() | |
enum | DbgEntityKind { DbgVariableKind , DbgLabelKind } |
This class is used to track local variable information.
Variables can be created from allocas, in which case they're generated from the MMI table. Such variables can have multiple expressions and frame indices.
Variables can be created from DBG_VALUE
instructions. Those whose location changes over time use DebugLocListIndex, while those with a single location use ValueLoc and (optionally) a single entry of Expr.
Variables that have been optimized out use none of these fields.
Definition at line 115 of file DwarfDebug.h.
|
inline |
Frame index + expression.
Construct a DbgVariable.
Creates a variable without any DW_AT_location. Call initializeMMI() for MMI entries, or initializeDbgValue() for DBG_VALUE instructions.
Definition at line 136 of file DwarfDebug.h.
void DbgVariable::addMMIEntry | ( | const DbgVariable & | V | ) |
Definition at line 291 of file DwarfDebug.cpp.
References llvm::all_of(), assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::SmallVectorBase< Size_T >::empty(), llvm::DbgEntity::getInlinedAt(), getVariable(), llvm::none_of(), llvm::Other, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by llvm::DwarfFile::addScopeVariable().
Definition at line 225 of file DwarfDebug.h.
References llvm::DbgEntity::DbgVariableKind, and N.
|
inline |
Definition at line 176 of file DwarfDebug.h.
|
inline |
Definition at line 178 of file DwarfDebug.h.
ArrayRef< DbgVariable::FrameIndexExpr > DbgVariable::getFrameIndexExprs | ( | ) | const |
Get the FI entries, sorted by fragment offset.
Definition at line 273 of file DwarfDebug.cpp.
References A, llvm::all_of(), assert(), B, llvm::SmallVectorBase< Size_T >::size(), and llvm::sort().
|
inline |
Definition at line 181 of file DwarfDebug.h.
References llvm::DIVariable::getName(), and getVariable().
Referenced by llvm::DwarfCompileUnit::applyVariableAttributes().
|
inline |
Definition at line 170 of file DwarfDebug.h.
References assert(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by llvm::DwarfCompileUnit::addComplexAddress().
|
inline |
Definition at line 189 of file DwarfDebug.h.
References getVariable().
Definition at line 229 of file DwarfDebug.cpp.
References llvm::DIVariable::getType(), and getVariable().
Referenced by llvm::DwarfCompileUnit::applyVariableAttributes(), dependencies(), isArtificial(), and isObjectPointer().
|
inline |
Definition at line 182 of file DwarfDebug.h.
|
inline |
Definition at line 166 of file DwarfDebug.h.
References llvm::DbgEntity::getEntity().
Referenced by addMMIEntry(), llvm::DwarfFile::addScopeVariable(), llvm::DwarfCompileUnit::applyVariableAttributes(), getName(), getTag(), getType(), initializeDbgValue(), isArtificial(), and isObjectPointer().
|
inline |
Definition at line 214 of file DwarfDebug.h.
References assert(), llvm::SmallVectorBase< Size_T >::empty(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by llvm::DwarfCompileUnit::addVariableAddress().
|
inline |
Definition at line 185 of file DwarfDebug.h.
References llvm::SmallVectorBase< Size_T >::empty().
void DbgVariable::initializeDbgValue | ( | const MachineInstr * | DbgValue | ) |
Initialize from a DBG_VALUE instruction.
Definition at line 259 of file DwarfDebug.cpp.
References assert(), E, llvm::SmallVectorBase< Size_T >::empty(), getDebugLocValue(), llvm::DbgEntity::getInlinedAt(), getVariable(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inline |
Definition at line 151 of file DwarfDebug.h.
References assert(), E, llvm::SmallVectorBase< Size_T >::empty(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::DebugLocStream::ListBuilder::~ListBuilder().
|
inline |
Initialize from the MMI table.
Definition at line 140 of file DwarfDebug.h.
References assert(), E, llvm::SmallVectorBase< Size_T >::empty(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inline |
Return true if DbgVariable is artificial.
Definition at line 198 of file DwarfDebug.h.
References getType(), getVariable(), and isArtificial().
Referenced by llvm::DwarfCompileUnit::applyVariableAttributes(), and isArtificial().
|
inline |
Definition at line 206 of file DwarfDebug.h.
References getType(), getVariable(), and isObjectPointer().
Referenced by llvm::DwarfCompileUnit::constructVariableDIE(), and isObjectPointer().
|
inline |
Definition at line 175 of file DwarfDebug.h.
Referenced by llvm::DebugLocStream::ListBuilder::~ListBuilder().
|
inline |
Definition at line 177 of file DwarfDebug.h.
Referenced by llvm::DebugLocStream::ListBuilder::~ListBuilder().