llvm::DIAssignID

Assignment ID linking stores to dbg.assign intrinsics.

Synopsis

Declared in <llvm/IR/DebugInfoMetadata.h>

class DIAssignID
    : public MDNode

Description

Used to link stores (as an attachment) and dbg.assigns (as an operand). DIAssignID metadata is never uniqued as we compare instances using referential equality (the instance/address is the ID).

Base Classes

NameDescription
MDNodeMetadata node.

Type Aliases

NameDescription
op_iterator Iterator over this node's operands.
op_range Range of this node's operands.

Enums

NameDescription
MetadataKind RTTI identifiers for concrete metadata subclasses.

Member Functions

NameDescription
operator= [deleted]Copy assignment is deleted; MDNode is non-copyable.
clone Create a (temporary) clone of this.
dump dump overloads
dumpTree dumpTree overloads
getAllDbgVariableRecordUsers Return the all dbg variable record users.
getContext Return the LLVM context that owns this node.
getMetadataID Return the metadata kind ID for this node.
getNumOperands Return number of MDNode operands.
getNumTemporaryUses Return the number of uses of this temporary metadata node.
getOperand Return the operand at index I.
isAlwaysReplaceable Return true if this node kind is always RAUW-replaceable (e.g. DIAssignID).
isDistinct Return true if this node is distinct (not uniqued).
isReplaceable Return true if this node supports RAUW replacement.
isResolved Check if node is fully resolved.
isTBAAVtableAccess Check whether MDNode is a vtable access.
isTemporary Return true if this is a temporary (forward-declaration) metadata node.
isUniqued Return true if this node is uniqued in the context.
op_begin Return an iterator to the first operand.
op_end Return an iterator past the last operand.
operands Return this node's operands as an array reference.
operator new [deleted]Ordinary allocation is deleted; use the custom MDNode allocators.
print print overloads
printAsOperand printAsOperand overloads
printTree printTree overloads
replaceAllUsesWith RAUW a temporary.
replaceOperandWith [deleted]Replace the operand with.
resolve Resolve a unique, unresolved node.
resolveCycles Resolve cycles.

Static Member Functions

NameDescription
classof Check whether MD is this kind of metadata.
concatenate Methods for metadata merging. Concatenate metadata nodes A and B.
deleteTemporary Deallocate a node created by getTemporary.
fromCaptureComponents Convert CaptureComponents to !captures metadata. The return value may be nullptr.
get Return a uniqued tuple metadata node with operands MDs.
getDistinct getDistinct overloads
getIfExists Return an existing uniqued tuple for MDs, or null if none.
getMergedAllocTokenMetadata Merge alloc-token metadata from two instructions.
getMergedCalleeTypeMetadata Merge callee-type metadata from two instructions.
getMergedCallsiteMetadata Merge callsite metadata from two instructions.
getMergedMemProfMetadata Merge memprof metadata from two instructions.
getMergedProfMetadata Merge !prof metadata from two instructions. Currently only implemented with direct callsites with branch weights.
getMostGenericAliasScope Merge alias-scope metadata, keeping scopes present in both.
getMostGenericAlignmentOrDereferenceable Merge align/dereferenceable metadata, returning the most generic bound.
getMostGenericFPMath Merge FP-math metadata, returning the most generic accuracy.
getMostGenericNoFPClass Merge !nofpclass metadata by intersecting the allowed FP classes.
getMostGenericNoaliasAddrspace Merge noalias address-space metadata, returning the most generic set.
getMostGenericRange Merge !range metadata by taking the union of the integer intervals.
getMostGenericTBAA Merge TBAA metadata, returning the most generic common tag.
getTemporary getTemporary overloads
intersect Intersect metadata nodes A and B.
replaceWithDistinct Replace a temporary node with a distinct one.
replaceWithPermanent Replace a temporary node with a permanent one.
replaceWithUniqued Replace a temporary node with a uniqued one.
toCaptureComponents Convert !captures metadata to CaptureComponents. MD may be nullptr.

Static Data Members

NameDescription
PoisonGeneratingIDs Metadata IDs that may generate poison.

Protected Type Aliases

NameDescription
mutable_op_range Range type over mutable MDOperand elements.

Protected Enums

NameDescription
StorageType Active type of storage.

Protected Member Functions

NameDescription
dropAllReferences Drop all references held by this metadata node.
getNumUnresolved Return the number of unresolved operands in this node.
handleChangedOperand Default handling of a changed operand, which asserts.
mutable_begin Return an iterator to the first mutable operand.
mutable_end Return an iterator past the last mutable operand.
mutable_operands Return a mutable range over this node's operands.
operator delete Delete operators
operator new Allocate an MDNode with NumOps operand slots and Storage kind.
resize Resize the node to hold NumOps operands.
setNumUnresolved Set the number of unresolved operands in this node.
setOperand Set an operand.
storeDistinctInContext Register this node as a distinct MDNode owned by the LLVMContext.

Protected Static Member Functions

NameDescription
storeImpl storeImpl overloads

Protected Data Members

NameDescription
Storage Storage flag for non-uniqued, otherwise unowned, metadata.
SubclassData1 One bit of subclass-specific state packed into the metadata header.
SubclassData16 Sixteen bits of subclass-specific state packed into the metadata header.
SubclassData32 Thirty-two bits of subclass-specific state packed into the metadata header.

Friends

NameDescription
llvm::MDNodeMetadata node.
llvm::LLVMContextImplPrivate implementation details of LLVMContext.

Non-Member Functions

NameDescription
GetUnrollMetadataReturn the named unroll hint metadata operand from loop id LoopID.
MapMetadataLookup or compute a mapping for a piece of metadata.
MapMetadataVersion of MapMetadata with type safety for MDNode.
UpgradeTBAANodeUpgrade a scalar TBAA tag to the struct-path aware TBAA format.
computeKnownBitsFromRangeMetadataCompute known bits from the range metadata. KnownZero the set of bits that are known to be zero KnownOne the set of bits that are known to be one
extractBranchWeightsExtract branch weights from MD_prof metadata
extractFromBranchWeightMD32Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes. Supports uint32_t.
extractFromBranchWeightMD64Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes. Supports uint64_t.
extractProfTotalWeightRetrieve the total of all weights from MD_prof data.
findOptionMDForLoopIDFind and return the loop attribute node for the attribute Name in LoopID. Return nullptr if there is no such attribute.
getBranchWeightOffsetReturn the offset to the first branch weight data
getConstantRangeFromMetadataParse out a conservative ConstantRange from !range metadata.
getDISubprogramFind subprogram that is enclosing this scope.
getNumBranchWeightsReturn the number of branch weights stored in ProfileData
hasBranchWeightOriginCheck if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic
isBranchWeightMDChecks if an MDNode contains Branch Weight Metadata
isExplicitlyUnknownProfileMetadataCheck whether MD is explicitly-unknown profile metadata.
isValidAsAccessGroupReturn whether an MDNode might represent an access group.
isValueProfileMDChecks if an MDNode contains value profiling Metadata
makeFollowupLoopIDCreate a new loop identifier for a loop created from a loop transformation.
uniteAccessGroupsCompute the union of two access-group lists.
upgradeInstructionLoopAttachmentUpgrade the loop attachment metadata node.
wrapWrap a Metadata pointer as an opaque LLVMMetadataRef.
at::RAUWReplace all uses (and attachments) of Old with New.
at::getAssignmentInstsReturn instructions that have ID as a DIAssignID attachment.
memprof::getMIBAllocTypeReturns the allocation type from an MIB metadata node.
memprof::getMIBStackNodeReturns the stack node from an MIB metadata node.