LLVM
8.0.1
|
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 Public Member Functions inherited from llvm::DbgEntity | |
static bool | classof (const DbgEntity *N) |
Additional Inherited Members | |
Public Types inherited from llvm::DbgEntity | |
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 instruction use MInsn and (optionally) a single entry of Expr.
Variables that have been optimized out use none of these fields.
Definition at line 117 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 133 of file DwarfDebug.h.
void DbgVariable::addMMIEntry | ( | const DbgVariable & | V | ) |
Definition at line 254 of file DwarfDebug.cpp.
References llvm::all_of(), assert(), llvm::SmallVectorBase::empty(), llvm::DbgEntity::getInlinedAt(), getVariable(), llvm::none_of(), and Other.
Referenced by llvm::DwarfFile::addScopeVariable().
Definition at line 219 of file DwarfDebug.h.
References llvm::DbgEntity::DbgVariableKind, llvm::DbgEntity::getDbgEntityID(), llvm::Ref, and llvm::TypedDINodeRef< T >::resolve().
|
inline |
Definition at line 173 of file DwarfDebug.h.
Referenced by llvm::DwarfCompileUnit::constructLabelDIE().
ArrayRef< DbgVariable::FrameIndexExpr > DbgVariable::getFrameIndexExprs | ( | ) | const |
Get the FI entries, sorted by fragment offset.
Definition at line 236 of file DwarfDebug.cpp.
References llvm::all_of(), assert(), B, and llvm::sort().
Referenced by llvm::DwarfCompileUnit::constructLabelDIE().
|
inline |
Definition at line 175 of file DwarfDebug.h.
Referenced by llvm::DwarfCompileUnit::constructLabelDIE().
|
inline |
Definition at line 174 of file DwarfDebug.h.
Referenced by llvm::DwarfCompileUnit::applyVariableAttributes().
|
inline |
Definition at line 167 of file DwarfDebug.h.
References assert(), and llvm::SmallVectorBase::size().
Referenced by llvm::DwarfCompileUnit::addComplexAddress(), and llvm::DwarfCompileUnit::constructLabelDIE().
|
inline |
Definition at line 182 of file DwarfDebug.h.
Referenced by llvm::DwarfCompileUnit::constructLabelDIE().
Definition at line 191 of file DwarfDebug.cpp.
References getBaseType(), getName(), llvm::DINode::getTag(), llvm::DIType::isBlockByrefStruct(), N, and llvm::MDNode::resolve().
Referenced by llvm::DwarfCompileUnit::applyVariableAttributes(), llvm::DwarfCompileUnit::constructLabelDIE(), and dependencies().
|
inline |
Definition at line 163 of file DwarfDebug.h.
References llvm::DbgEntity::getEntity().
Referenced by addMMIEntry(), llvm::DwarfFile::addScopeVariable(), llvm::DwarfCompileUnit::applyVariableAttributes(), and llvm::DwarfCompileUnit::constructLabelDIE().
|
inline |
Definition at line 207 of file DwarfDebug.h.
References assert(), llvm::SmallVectorBase::empty(), getType(), and llvm::SmallVectorBase::size().
Referenced by llvm::DwarfCompileUnit::addVariableAddress().
|
inline |
Definition at line 178 of file DwarfDebug.h.
References llvm::SmallVectorBase::empty().
Referenced by llvm::DwarfCompileUnit::constructLabelDIE().
|
inline |
Initialize from a DBG_VALUE instruction.
Definition at line 148 of file DwarfDebug.h.
References assert(), E, llvm::SmallVectorBase::empty(), llvm::MachineInstr::getDebugExpression(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getDebugVariable(), llvm::DbgEntity::getInlinedAt(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by validThroughout().
|
inline |
Initialize from the MMI table.
Definition at line 137 of file DwarfDebug.h.
References assert(), llvm::SmallVectorBase::empty(), llvm::DIExpression::isValid(), llvm::max(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inline |
Return true if DbgVariable is artificial.
Definition at line 191 of file DwarfDebug.h.
References getType().
Referenced by llvm::DwarfCompileUnit::applyVariableAttributes().
bool DbgVariable::isBlockByrefVariable | ( | ) | const |
Definition at line 186 of file DwarfDebug.cpp.
References assert().
Referenced by llvm::DwarfCompileUnit::addVariableAddress().
|
inline |
Definition at line 199 of file DwarfDebug.h.
References getType().
Referenced by llvm::DwarfCompileUnit::constructVariableDIE().
|
inline |
Definition at line 172 of file DwarfDebug.h.
References llvm::RISCVFenceField::O.