LLVM  3.7.0
Public Member Functions | List of all members
llvm::DbgVariable Class Reference

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 DILocalVariablegetVariable () const
 
const DILocationgetInlinedAt () const
 
const ArrayRef< const
DIExpression * > 
getExpression () const
 
void setDIE (DIE &D)
 
DIEgetDIE () const
 
void setDebugLocListIndex (unsigned O)
 
unsigned getDebugLocListIndex () const
 
StringRef getName () const
 
const MachineInstrgetMInsn () const
 
const ArrayRef< intgetFrameIndex () 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 DITypegetType () const
 

Detailed 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. 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.

Constructor & Destructor Documentation

llvm::DbgVariable::DbgVariable ( const DILocalVariable V,
const DILocation IA,
DwarfDebug DD 
)
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.

Member Function Documentation

void llvm::DbgVariable::addMMIEntry ( const DbgVariable V)
inline
unsigned llvm::DbgVariable::getDebugLocListIndex ( ) const
inline

Definition at line 134 of file DwarfDebug.h.

DIE* llvm::DbgVariable::getDIE ( ) const
inline

Definition at line 132 of file DwarfDebug.h.

const ArrayRef<const DIExpression *> llvm::DbgVariable::getExpression ( ) const
inline

Definition at line 130 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::addComplexAddress().

const ArrayRef<int> llvm::DbgVariable::getFrameIndex ( ) const
inline

Definition at line 137 of file DwarfDebug.h.

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

Definition at line 129 of file DwarfDebug.h.

const MachineInstr* llvm::DbgVariable::getMInsn ( ) const
inline

Definition at line 136 of file DwarfDebug.h.

StringRef llvm::DbgVariable::getName ( ) const
inline
dwarf::Tag llvm::DbgVariable::getTag ( ) const
inline

Definition at line 158 of file DwarfDebug.h.

References llvm::DINode::getTag().

const DIType * DbgVariable::getType ( ) const
const DILocalVariable* llvm::DbgVariable::getVariable ( ) const
inline
bool llvm::DbgVariable::hasComplexAddress ( ) const
inline

Definition at line 181 of file DwarfDebug.h.

References llvm::SmallVectorBase::empty().

Referenced by llvm::DwarfCompileUnit::addVariableAddress().

void llvm::DbgVariable::initializeDbgValue ( const MachineInstr DbgValue)
inline
void llvm::DbgVariable::initializeMMI ( const DIExpression E,
int  FI 
)
inline
bool llvm::DbgVariable::isArtificial ( ) const
inline
bool DbgVariable::isBlockByrefVariable ( ) const
bool llvm::DbgVariable::isObjectPointer ( ) const
inline
void llvm::DbgVariable::setDebugLocListIndex ( unsigned  O)
inline

Definition at line 133 of file DwarfDebug.h.

Referenced by llvm::DebugLocStream::ListBuilder::~ListBuilder().

void llvm::DbgVariable::setDIE ( DIE D)
inline

Definition at line 131 of file DwarfDebug.h.

Referenced by llvm::DwarfCompileUnit::constructVariableDIE().


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