class DbgVariableIntrinsic

Declaration

class DbgVariableIntrinsic : public DbgInfoIntrinsic { /* full declaration omitted */ };

Description

This is the common base class for debug info intrinsics for variables.

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:153

Inherits from: DbgInfoIntrinsic

Member Variables

Inherited from CallBase:

protected Attrs
protected FTy
protected static CalledOperandOpEndIdx = -1

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasMetadata
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 32
public static MaximumAlignment = 1ULL << MaxAlignmentExponent

Method Overview

Inherited from DbgInfoIntrinsic:

Inherited from IntrinsicInst:

Inherited from CallInst:

Inherited from CallBase:

Inherited from Instruction:

Inherited from User:

Inherited from Value:

Methods

void addVariableLocationOps(
    ArrayRef<llvm::Value*> NewValues,
    llvm::DIExpression* NewExpr)

Description

Adding a new location operand will always result in this intrinsic using an ArgList, and must always be accompanied by a new expression that uses the new operand.

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:215

Parameters

ArrayRef<llvm::Value*> NewValues
llvm::DIExpression* NewExpr

static bool classof(const llvm::Value* V)

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:301

Parameters

const llvm::Value* V

static bool classof(const llvm::IntrinsicInst* I)

Description

@ {

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:291

Parameters

const llvm::IntrinsicInst* I

llvm::DIExpression* getExpression() const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:262

Optional<uint64_t> getFragmentSizeInBits() const

Description

Get the size (in bits) of the variable, or fragment of the variable that is described.

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:287

unsigned int getNumVariableLocationOps() const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:226

llvm::Metadata* getRawExpression() const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:274

llvm::Metadata* getRawLocation() const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:266

llvm::Metadata* getRawVariable() const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:270

llvm::DILocalVariable* getVariable() const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:258

llvm::Value* getVariableLocationOp(
    unsigned int OpIdx) const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:208

Parameters

unsigned int OpIdx

bool hasArgList() const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:232

bool isAddressOfVariable() const

Description

Does this describe the address of a local variable. True for dbg.addr and dbg.declare, but not dbg.value, which describes its value.

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:236

bool isUndef() const

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:252

iterator_range<llvm::DbgVariableIntrinsic::
                   location_op_iterator>
location_ops() const

Description

Get the locations corresponding to the variable referenced by the debug info intrinsic. Depending on the intrinsic, this could be the variable's value or its address.

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:206

void replaceVariableLocationOp(
    unsigned int OpIdx,
    llvm::Value* NewValue)

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:211

Parameters

unsigned int OpIdx
llvm::Value* NewValue

void replaceVariableLocationOp(
    llvm::Value* OldValue,
    llvm::Value* NewValue)

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:210

Parameters

llvm::Value* OldValue
llvm::Value* NewValue

void setArgOperand(unsigned int i, llvm::Value* v)

Description

@ }

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:306

Parameters

unsigned int i
llvm::Value* v

void setExpression(llvm::DIExpression* NewExpr)

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:222

Parameters

llvm::DIExpression* NewExpr

void setOperand(unsigned int i, llvm::Value* v)

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:309

Parameters

unsigned int i
llvm::Value* v

void setRawLocation(llvm::Metadata* Location)

Description

Use of this should generally be avoided; instead, replaceVariableLocationOp and addVariableLocationOps should be used where possible to avoid creating invalid state.

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:281

Parameters

llvm::Metadata* Location

void setUndef()

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:240

void setVariable(llvm::DILocalVariable* NewVar)

Declared at: llvm/include/llvm/IR/IntrinsicInst.h:218

Parameters

llvm::DILocalVariable* NewVar