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:
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
- public void addVariableLocationOps(ArrayRef<llvm::Value *> NewValues, llvm::DIExpression * NewExpr)
- public static bool classof(const llvm::Value * V)
- public static bool classof(const llvm::IntrinsicInst * I)
- public llvm::DIExpression * getExpression() const
- public Optional<uint64_t> getFragmentSizeInBits() const
- public unsigned int getNumVariableLocationOps() const
- public llvm::Metadata * getRawExpression() const
- public llvm::Metadata * getRawLocation() const
- public llvm::Metadata * getRawVariable() const
- public llvm::DILocalVariable * getVariable() const
- public llvm::Value * getVariableLocationOp(unsigned int OpIdx) const
- public bool hasArgList() const
- public bool isAddressOfVariable() const
- public bool isUndef() const
- public iterator_range<llvm::DbgVariableIntrinsic::location_op_iterator> location_ops() const
- public void replaceVariableLocationOp(unsigned int OpIdx, llvm::Value * NewValue)
- public void replaceVariableLocationOp(llvm::Value * OldValue, llvm::Value * NewValue)
- private void setArgOperand(unsigned int i, llvm::Value * v)
- public void setExpression(llvm::DIExpression * NewExpr)
- private void setOperand(unsigned int i, llvm::Value * v)
- public void setRawLocation(llvm::Metadata * Location)
- public void setUndef()
- public void setVariable(llvm::DILocalVariable * NewVar)
Inherited from DbgInfoIntrinsic:
Inherited from IntrinsicInst:
- public classof
- public classof
- public getIntrinsicID
- public isAssumeLikeIntrinsic
- public isCommutative
- public mayLowerToFunctionCall
Inherited from CallInst:
- public Create
- public Create
- public Create
- public Create
- public Create
- public Create
- public Create
- public Create
- public Create
- public Create
- public Create
- public Create
- public Create
- public CreateFree
- public CreateFree
- public CreateFree
- public CreateFree
- public CreateMalloc
- public CreateMalloc
- public CreateMalloc
- public CreateMalloc
- public canReturnTwice
- public classof
- public classof
- protected cloneImpl
- public getTailCallKind
- public isMustTailCall
- public isNoTailCall
- public isTailCall
- public setCanReturnTwice
- public setTailCall
- public setTailCallKind
- public updateProfWeight
Inherited from CallBase:
- protected CountBundleInputs
- public Create
- public Create
- public addAttributeAtIndex
- public addAttributeAtIndex
- public addDereferenceableParamAttr
- public addDereferenceableRetAttr
- public addFnAttr
- public addFnAttr
- public addOperandBundle
- public addParamAttr
- public addParamAttr
- public addRetAttr
- public addRetAttr
- public arg_begin
- public arg_begin
- public arg_empty
- public arg_end
- public arg_end
- public arg_size
- public args
- public args
- public bundleOperandHasAttr
- public bundle_op_info_begin
- public bundle_op_info_begin
- public bundle_op_info_end
- public bundle_op_info_end
- public bundle_op_infos
- public bundle_op_infos
- public cannotDuplicate
- public cannotMerge
- public classof
- public classof
- public countOperandBundlesOfType
- public countOperandBundlesOfType
- public dataOperandHasImpliedAttr
- public data_operands_begin
- public data_operands_begin
- public data_operands_empty
- public data_operands_end
- public data_operands_end
- public data_operands_size
- public data_ops
- public data_ops
- public doesNoCfCheck
- public doesNotAccessMemory
- public doesNotAccessMemory
- public doesNotCapture
- public doesNotReturn
- public doesNotThrow
- public getArgOperand
- public getArgOperandNo
- public getArgOperandNo
- public getArgOperandUse
- public getArgOperandUse
- public getArgOperandWithAttribute
- public getAttributeAtIndex
- public getAttributeAtIndex
- public getAttributes
- public getBundleOpInfoForOperand
- public getBundleOpInfoForOperand
- public getBundleOperandsEndIndex
- public getBundleOperandsStartIndex
- public getCalledFunction
- public getCalledOperand
- public getCalledOperandUse
- public getCalledOperandUse
- public getCaller
- public getCaller
- public getCallingConv
- public getDataOperandNo
- public getDataOperandNo
- public getFnAttr
- public getFnAttr
- public getFunctionType
- public getIntrinsicID
- public getNumOperandBundles
- protected getNumSubclassExtraOperands
- protected getNumSubclassExtraOperandsDynamic
- public getNumTotalBundleOperands
- public getOperandBundle
- public getOperandBundle
- public getOperandBundleAt
- public getOperandBundleForOperand
- public getOperandBundlesAsDefs
- public getParamAlign
- public getParamAttr
- public getParamAttr
- public getParamByValType
- public getParamDereferenceableBytes
- public getParamDereferenceableOrNullBytes
- public getParamElementType
- public getParamInAllocaType
- public getParamPreallocatedType
- public getParamStackAlign
- public getParamStructRetType
- public getRetAlign
- public getRetDereferenceableBytes
- public getRetDereferenceableOrNullBytes
- public getReturnedArgOperand
- public hasArgument
- public hasByValArgument
- public hasClobberingOperandBundles
- protected hasDescriptor
- public hasFnAttr
- public hasFnAttr
- public hasIdenticalOperandBundleSchema
- public hasInAllocaArgument
- public hasOperandBundles
- public hasOperandBundlesOtherThan
- public hasReadingOperandBundles
- public hasRetAttr
- public hasRetAttr
- public hasStructRetAttr
- public isArgOperand
- public isArgOperand
- public isBundleOperand
- public isBundleOperand
- public isBundleOperand
- public isByValArgument
- public isCallee
- public isCallee
- public isConvergent
- public isDataOperand
- public isDataOperand
- public isFnAttrDisallowedByOpBundle
- public isFnAttrDisallowedByOpBundle
- public isInAllocaArgument
- public isIndirectCall
- public isInlineAsm
- public isMustTailCall
- public isNoBuiltin
- public isNoInline
- public isOperandBundleOfType
- public isPassPointeeByValueArgument
- public isPassingUndefUB
- public isReturnNonNull
- public isStrictFP
- public isTailCall
- public mutateFunctionType
- public onlyAccessesArgMemory
- public onlyAccessesInaccessibleMemOrArgMem
- public onlyAccessesInaccessibleMemory
- public onlyReadsMemory
- public onlyReadsMemory
- public onlyWritesMemory
- public onlyWritesMemory
- public operandBundleFromBundleOpInfo
- public paramHasAttr
- public populateBundleOperandInfos
- public removeAttributeAtIndex
- public removeAttributeAtIndex
- public removeFnAttr
- public removeFnAttrs
- public removeOperandBundle
- public removeParamAttr
- public removeParamAttr
- public removeParamAttrs
- public removeRetAttr
- public removeRetAttrs
- public returnDoesNotAlias
- public setArgOperand
- public setAttributes
- public setCalledFunction
- public setCalledFunction
- public setCalledFunction
- public setCalledOperand
- public setCallingConv
- public setCannotDuplicate
- public setCannotMerge
- public setConvergent
- public setDoesNotAccessMemory
- public setDoesNotReturn
- public setDoesNotThrow
- public setIsNoInline
- public setNotConvergent
- public setOnlyAccessesArgMemory
- public setOnlyAccessesInaccessibleMemOrArgMem
- public setOnlyAccessesInaccessibleMemory
- public setOnlyReadsMemory
- public setOnlyWritesMemory
Inherited from Instruction:
- public addAnnotationMetadata
- public andIRFlags
- public applyMergedLocation
- public classof
- public clone
- public comesBefore
- public copyFastMathFlags
- public copyFastMathFlags
- public copyIRFlags
- public copyMetadata
- public dropLocation
- public dropPoisonGeneratingFlags
- public dropUndefImplyingAttrsAndUnknownMetadata
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public eraseFromParent
- public extractProfMetadata
- public extractProfTotalWeight
- public getAAMetadata
- public getAllMetadata
- public getAllMetadataOtherThanDebugLoc
- public getDebugLoc
- public getFastMathFlags
- public getFunction
- public getFunction
- public getMetadata
- public getMetadata
- public getModule
- public getModule
- public getNextNonDebugInstruction
- public getNextNonDebugInstruction
- public getNumSuccessors
- public getOpcode
- public getOpcodeName
- public getOpcodeName
- public getParent
- public getParent
- public getPrevNonDebugInstruction
- public getPrevNonDebugInstruction
- protected getSubclassData
- public getSuccessor
- public hasAllowContract
- public hasAllowReassoc
- public hasAllowReciprocal
- public hasApproxFunc
- public hasAtomicLoad
- public hasAtomicStore
- public hasMetadata
- public hasMetadata
- public hasMetadata
- public hasMetadataOtherThanDebugLoc
- public hasNoInfs
- public hasNoNaNs
- public hasNoSignedWrap
- public hasNoSignedZeros
- public hasNoUnsignedWrap
- public hasPoisonGeneratingFlags
- public insertAfter
- public insertBefore
- public isArithmeticShift
- public isAssociative
- public isAssociative
- public isAtomic
- public isBinaryOp
- public isBinaryOp
- public isBitwiseLogicOp
- public isBitwiseLogicOp
- public isCast
- public isCast
- public isCommutative
- public isCommutative
- public isDebugOrPseudoInst
- public isEHPad
- public isExact
- public isExceptionalTerminator
- public isExceptionalTerminator
- public isFast
- public isFenceLike
- public isFuncletPad
- public isFuncletPad
- public isIdempotent
- public isIdempotent
- public isIdenticalTo
- public isIdenticalToWhenDefined
- public isIntDivRem
- public isIntDivRem
- public isLaunderOrStripInvariantGroup
- public isLifetimeStartOrEnd
- public isLogicalShift
- public isNilpotent
- public isNilpotent
- public isOnlyUserOfAnyOperand
- public isSafeToRemove
- public isSameOperationAs
- public isShift
- public isShift
- public isTerminator
- public isTerminator
- public isUnaryOp
- public isUnaryOp
- public isUsedOutsideOfBlock
- public isVolatile
- public mayHaveSideEffects
- public mayReadFromMemory
- public mayReadOrWriteMemory
- public mayThrow
- public mayWriteToMemory
- public moveAfter
- public moveBefore
- public moveBefore
- public removeFromParent
- public replaceSuccessorWith
- public setAAMetadata
- public setDebugLoc
- public setFast
- public setFastMathFlags
- public setHasAllowContract
- public setHasAllowReassoc
- public setHasAllowReciprocal
- public setHasApproxFunc
- public setHasNoInfs
- public setHasNoNaNs
- public setHasNoSignedWrap
- public setHasNoSignedZeros
- public setHasNoUnsignedWrap
- public setIsExact
- public setMetadata
- public setMetadata
- protected setSubclassData
- public setSuccessor
- public swapProfMetadata
- public updateLocationAfterHoist
- public user_back
- public user_back
- public willReturn
Inherited from User:
- protected Op
- protected Op
- protected OpFrom
- protected allocHungoffUses
- public classof
- public dropAllReferences
- public getDescriptor
- public getDescriptor
- public getNumOperands
- public getOperand
- public getOperandList
- public getOperandList
- public getOperandUse
- public getOperandUse
- protected growHungoffUses
- public isDroppable
- public op_begin
- public op_begin
- public op_end
- public op_end
- public operand_values
- public operand_values
- public operands
- public operands
- public replaceUsesOfWith
- public setGlobalVariableNumOperands
- public setNumHungOffUseOperands
- public setOperand
- public value_op_begin
- public value_op_begin
- public value_op_end
- public value_op_end
Inherited from Value:
- public DoPHITranslation
- public DoPHITranslation
- protected addMetadata
- protected addMetadata
- public addUse
- public assertModuleIsMaterialized
- public assertModuleIsMaterializedImpl
- public canBeFreed
- protected clearMetadata
- public clearSubclassOptionalData
- public deleteValue
- public dropDroppableUse
- public dropDroppableUses
- public dropDroppableUsesIn
- public dump
- protected eraseMetadata
- protected getAllMetadata
- public getContext
- protected getMetadata
- protected getMetadata
- protected getMetadata
- protected getMetadata
- public getName
- public getNameOrAsOperand
- public getNumUses
- public getPointerAlignment
- public getPointerDereferenceableBytes
- public getRawSubclassOptionalData
- public getSingleUndroppableUse
- public getSingleUndroppableUse
- protected getSubclassDataFromValue
- public getType
- public getUniqueUndroppableUser
- public getUniqueUndroppableUser
- public getValueID
- public getValueName
- protected hasMetadata
- protected hasMetadata
- protected hasMetadata
- public hasNUndroppableUses
- public hasNUndroppableUsesOrMore
- public hasNUses
- public hasNUsesOrMore
- public hasName
- public hasOneUse
- public hasOneUser
- public hasSameSubclassOptionalData
- public hasValueHandle
- public isSwiftError
- public isTransitiveUsedByMetadataOnly
- public isUsedByMetadata
- public isUsedInBasicBlock
- public materialized_use_begin
- public materialized_use_begin
- public materialized_use_empty
- public materialized_user_begin
- public materialized_user_begin
- public materialized_users
- public materialized_users
- public materialized_uses
- public materialized_uses
- public mutateType
- public print
- public print
- public printAsOperand
- public printAsOperand
- public replaceAllUsesWith
- public replaceNonMetadataUsesWith
- public replaceUsesOutsideBlock
- public replaceUsesWithIf
- public reverseUseList
- protected setMetadata
- protected setMetadata
- public setName
- public setValueName
- protected setValueSubclassData
- public sortUseList
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsOffsets
- public stripInBoundsOffsets
- public stripPointerCasts
- public stripPointerCasts
- public stripPointerCastsAndAliases
- public stripPointerCastsAndAliases
- public stripPointerCastsForAliasAnalysis
- public stripPointerCastsForAliasAnalysis
- public stripPointerCastsSameRepresentation
- public stripPointerCastsSameRepresentation
- public takeName
- public use_begin
- public use_begin
- public use_empty
- public use_end
- public use_end
- public user_back
- public user_back
- public user_begin
- public user_begin
- public user_empty
- public user_end
- public user_end
- public users
- public users
- public uses
- public uses
Methods
¶void addVariableLocationOps(
ArrayRef<llvm::Value*> NewValues,
llvm::DIExpression* NewExpr)
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)
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)
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
llvm::DIExpression* getExpression() const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:262
¶Optional<uint64_t> getFragmentSizeInBits() const
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
unsigned int getNumVariableLocationOps() const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:226
¶llvm::Metadata* getRawExpression() const
llvm::Metadata* getRawExpression() const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:274
¶llvm::Metadata* getRawLocation() const
llvm::Metadata* getRawLocation() const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:266
¶llvm::Metadata* getRawVariable() const
llvm::Metadata* getRawVariable() const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:270
¶llvm::DILocalVariable* getVariable() const
llvm::DILocalVariable* getVariable() const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:258
¶llvm::Value* getVariableLocationOp(
unsigned int OpIdx) const
llvm::Value* getVariableLocationOp(
unsigned int OpIdx) const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:208
Parameters
- unsigned int OpIdx
¶bool hasArgList() const
bool hasArgList() const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:232
¶bool isAddressOfVariable() const
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
bool isUndef() const
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:252
¶iterator_range<llvm::DbgVariableIntrinsic::
location_op_iterator>
location_ops() const
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)
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)
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)
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)
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)
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)
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()
void setUndef()
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:240
¶void setVariable(llvm::DILocalVariable* NewVar)
void setVariable(llvm::DILocalVariable* NewVar)
Declared at: llvm/include/llvm/IR/IntrinsicInst.h:218
Parameters
- llvm::DILocalVariable* NewVar