class DbgVariable
Declaration
class DbgVariable : public DbgEntity { /* full declaration omitted */ };
Description
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 \c DBG_VALUE instructions. Those whose location changes over time use \a DebugLocListIndex, while those with a single location use \a ValueLoc and (optionally) a single entry of \a Expr. Variables that have been optimized out use none of these fields.
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:118
Inherits from: DbgEntity
Method Overview
- public DbgVariable(const llvm::DILocalVariable * V, const llvm::DILocation * IA)
- public void addMMIEntry(const llvm::DbgVariable & V)
- public static bool classof(const llvm::DbgEntity * N)
- public unsigned int getDebugLocListIndex() const
- public Optional<uint8_t> getDebugLocListTagOffset() const
- public ArrayRef<llvm::DbgVariable::FrameIndexExpr> getFrameIndexExprs() const
- public llvm::StringRef getName() const
- public const llvm::DIExpression * getSingleExpression() const
- public dwarf::Tag getTag() const
- public const llvm::DIType * getType() const
- public const llvm::DbgValueLoc * getValueLoc() const
- public const llvm::DILocalVariable * getVariable() const
- public bool hasComplexAddress() const
- public bool hasFrameIndexExprs() const
- public void initializeDbgValue(const llvm::MachineInstr * DbgValue)
- public void initializeDbgValue(llvm::DbgValueLoc Value)
- public void initializeMMI(const llvm::DIExpression * E, int FI)
- public bool isArtificial() const
- public bool isObjectPointer() const
- public void setDebugLocListIndex(unsigned int O)
- public void setDebugLocListTagOffset(uint8_t O)
Inherited from DbgEntity:
Methods
¶DbgVariable(const llvm::DILocalVariable* V,
const llvm::DILocation* IA)
DbgVariable(const llvm::DILocalVariable* V,
const llvm::DILocation* IA)
Description
Construct a DbgVariable. Creates a variable without any DW_AT_location. Call \a initializeMMI() for MMI entries, or \a initializeDbgValue() for DBG_VALUE instructions.
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:139
Parameters
- const llvm::DILocalVariable* V
- const llvm::DILocation* IA
¶void addMMIEntry(const llvm::DbgVariable& V)
void addMMIEntry(const llvm::DbgVariable& V)
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:187
Parameters
- const llvm::DbgVariable& V
¶static bool classof(const llvm::DbgEntity* N)
static bool classof(const llvm::DbgEntity* N)
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:226
Parameters
- const llvm::DbgEntity* N
¶unsigned int getDebugLocListIndex() const
unsigned int getDebugLocListIndex() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:179
¶Optional<uint8_t> getDebugLocListTagOffset() const
Optional<uint8_t> getDebugLocListTagOffset() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:181
¶ArrayRef<llvm::DbgVariable::FrameIndexExpr>
getFrameIndexExprs() const
ArrayRef<llvm::DbgVariable::FrameIndexExpr>
getFrameIndexExprs() const
Description
Get the FI entries, sorted by fragment offset.
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:185
¶llvm::StringRef getName() const
llvm::StringRef getName() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:182
¶const llvm::DIExpression* getSingleExpression()
const
const llvm::DIExpression* getSingleExpression()
const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:173
¶dwarf::Tag getTag() const
dwarf::Tag getTag() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:190
¶const llvm::DIType* getType() const
const llvm::DIType* getType() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:224
¶const llvm::DbgValueLoc* getValueLoc() const
const llvm::DbgValueLoc* getValueLoc() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:183
¶const llvm::DILocalVariable* getVariable() const
const llvm::DILocalVariable* getVariable() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:169
¶bool hasComplexAddress() const
bool hasComplexAddress() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:215
¶bool hasFrameIndexExprs() const
bool hasFrameIndexExprs() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:186
¶void initializeDbgValue(
const llvm::MachineInstr* DbgValue)
void initializeDbgValue(
const llvm::MachineInstr* DbgValue)
Description
Initialize from a DBG_VALUE instruction.
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:166
Parameters
- const llvm::MachineInstr* DbgValue
¶void initializeDbgValue(llvm::DbgValueLoc Value)
void initializeDbgValue(llvm::DbgValueLoc Value)
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:154
Parameters
- llvm::DbgValueLoc Value
¶void initializeMMI(const llvm::DIExpression* E,
int FI)
void initializeMMI(const llvm::DIExpression* E,
int FI)
Description
Initialize from the MMI table.
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:143
Parameters
- const llvm::DIExpression* E
- int FI
¶bool isArtificial() const
bool isArtificial() const
Description
Return true if DbgVariable is artificial.
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:199
¶bool isObjectPointer() const
bool isObjectPointer() const
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:207
¶void setDebugLocListIndex(unsigned int O)
void setDebugLocListIndex(unsigned int O)
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:178
Parameters
- unsigned int O
¶void setDebugLocListTagOffset(uint8_t O)
void setDebugLocListTagOffset(uint8_t O)
Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:180
Parameters
- uint8_t O