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

Inherited from DbgEntity:

Methods

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)

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:187

Parameters

const llvm::DbgVariable& V

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

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:179

Optional<uint8_t> getDebugLocListTagOffset() const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:181

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

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:182

const llvm::DIExpression* getSingleExpression()
    const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:173

dwarf::Tag getTag() const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:190

const llvm::DIType* getType() const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:224

const llvm::DbgValueLoc* getValueLoc() const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:183

const llvm::DILocalVariable* getVariable() const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:169

bool hasComplexAddress() const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:215

bool hasFrameIndexExprs() const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:186

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)

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:154

Parameters

llvm::DbgValueLoc Value

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

Description

Return true if DbgVariable is artificial.

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:199

bool isObjectPointer() const

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:207

void setDebugLocListIndex(unsigned int O)

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:178

Parameters

unsigned int O

void setDebugLocListTagOffset(uint8_t O)

Declared at: llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h:180

Parameters

uint8_t O