|
LLVM
3.7.0
|
This class is used to track local variable information. More...
#include <DwarfDebug.h>
Public Member Functions | |
| DbgVariable (const DILocalVariable *V, const DILocation *IA, DwarfDebug *DD) | |
| Construct a DbgVariable. More... | |
| void | initializeMMI (const DIExpression *E, int FI) |
| Initialize from the MMI table. More... | |
| void | initializeDbgValue (const MachineInstr *DbgValue) |
| Initialize from a DBG_VALUE instruction. More... | |
| const DILocalVariable * | getVariable () const |
| const DILocation * | getInlinedAt () const |
| const ArrayRef< const DIExpression * > | getExpression () const |
| void | setDIE (DIE &D) |
| DIE * | getDIE () const |
| void | setDebugLocListIndex (unsigned O) |
| unsigned | getDebugLocListIndex () const |
| StringRef | getName () const |
| const MachineInstr * | getMInsn () const |
| const ArrayRef< int > | getFrameIndex () const |
| void | addMMIEntry (const DbgVariable &V) |
| dwarf::Tag | getTag () const |
| bool | isArtificial () const |
| Return true if DbgVariable is artificial. More... | |
| bool | isObjectPointer () const |
| bool | hasComplexAddress () const |
| bool | isBlockByrefVariable () const |
| const DIType * | getType () const |
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. The Expr and FrameIndices array must match.
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 81 of file DwarfDebug.h.
|
inline |
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 96 of file DwarfDebug.h.
|
inline |
Definition at line 139 of file DwarfDebug.h.
References llvm::all_of(), llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateCommon< T, typename >::end(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
|
inline |
Definition at line 134 of file DwarfDebug.h.
|
inline |
Definition at line 132 of file DwarfDebug.h.
|
inline |
Definition at line 130 of file DwarfDebug.h.
Referenced by llvm::DwarfCompileUnit::addComplexAddress().
Definition at line 137 of file DwarfDebug.h.
|
inline |
Definition at line 129 of file DwarfDebug.h.
|
inline |
Definition at line 136 of file DwarfDebug.h.
|
inline |
Definition at line 135 of file DwarfDebug.h.
References llvm::DIVariable::getName().
Referenced by llvm::DwarfUnit::addBlockByrefAddress(), llvm::DwarfCompileUnit::applyVariableAttributes(), and getType().
|
inline |
Definition at line 158 of file DwarfDebug.h.
References llvm::DINode::getTag().
Definition at line 144 of file DwarfDebug.cpp.
References getName(), llvm::DINode::getTag(), llvm::DIVariable::getType(), llvm::DwarfDebug::getTypeIdentifierMap(), llvm::DIType::isBlockByrefStruct(), N, and llvm::TypedDINodeRef< T >::resolve().
Referenced by llvm::DwarfUnit::addBlockByrefAddress(), llvm::DwarfCompileUnit::applyVariableAttributes(), isArtificial(), and isObjectPointer().
|
inline |
Definition at line 128 of file DwarfDebug.h.
Referenced by llvm::DwarfFile::addScopeVariable(), and llvm::DwarfCompileUnit::applyVariableAttributes().
|
inline |
Definition at line 181 of file DwarfDebug.h.
References llvm::SmallVectorBase::empty().
Referenced by llvm::DwarfCompileUnit::addVariableAddress().
|
inline |
Initialize from a DBG_VALUE instruction.
Definition at line 113 of file DwarfDebug.h.
References llvm::SmallVectorBase::empty(), llvm::MachineInstr::getDebugExpression(), llvm::MachineInstr::getDebugLoc(), and llvm::MachineInstr::getDebugVariable().
Referenced by llvm::DebugLocStream::ListBuilder::~ListBuilder().
|
inline |
Initialize from the MMI table.
Definition at line 100 of file DwarfDebug.h.
References llvm::SmallVectorBase::empty(), llvm::DIExpression::isValid(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
|
inline |
Return true if DbgVariable is artificial.
Definition at line 165 of file DwarfDebug.h.
References getType(), llvm::DIType::isArtificial(), and llvm::DILocalVariable::isArtificial().
Referenced by llvm::DwarfCompileUnit::applyVariableAttributes().
| bool DbgVariable::isBlockByrefVariable | ( | ) | const |
Definition at line 137 of file DwarfDebug.cpp.
References llvm::DIVariable::getType(), llvm::DwarfDebug::getTypeIdentifierMap(), and llvm::TypedDINodeRef< T >::resolve().
Referenced by llvm::DwarfCompileUnit::addVariableAddress().
|
inline |
Definition at line 173 of file DwarfDebug.h.
References getType(), llvm::DIType::isObjectPointer(), and llvm::DILocalVariable::isObjectPointer().
Referenced by llvm::DwarfCompileUnit::constructVariableDIE().
|
inline |
Definition at line 133 of file DwarfDebug.h.
Referenced by llvm::DebugLocStream::ListBuilder::~ListBuilder().
|
inline |
Definition at line 131 of file DwarfDebug.h.
Referenced by llvm::DwarfCompileUnit::constructVariableDIE().
1.8.6