llvm::DICompileUnit

Compile unit.

Synopsis

Declared in <llvm/IR/DebugInfoMetadata.h>

class DICompileUnit
    : public DIScope

Base Classes

NameDescription
DIScopeBase class for scope-like contexts.

Type Aliases

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

Enums

NameDescription
DIFlags Debug info flags.
DebugEmissionKind How much debug info a compile unit should emit.
DebugNameTableKind Kind of debug name table to emit.
MetadataKind RTTI identifiers for concrete metadata subclasses.

Member Functions

NameDescription
operator= [deleted]Copy assignment is deleted; MDNode is non-copyable.
clone Return a (temporary) clone of this.
dump dump overloads
dumpTree dumpTree overloads
getContext Return the LLVM context that owns this node.
getDWOId Return the dwo id.
getDebugInfoForProfiling Return the debug info for profiling.
getDialect Target-specific language dialect for DWARF.
getDirectory Return the directory.
getEmissionKind Return the emission kind.
getEnumTypes Return the enum types.
getFile Return the file.
getFilename Return the filename.
getFlags Return the flags.
getGlobalVariables Return the global variables.
getImportedEntities Return the imported entities.
getMacros Return the macros.
getMetadataID Return the metadata kind ID for this node.
getName Return the name.
getNameTableKind Return the name table kind.
getNumOperands Return number of MDNode operands.
getNumTemporaryUses Return the number of uses of this temporary metadata node.
getOperand Return the operand at index I.
getProducer Return the producer.
getRangesBaseAddress Return the ranges base address.
getRawEnumTypes Return the raw enum types operand.
getRawFile Return the raw underlying file.
getRawFlags Return the raw flags operand.
getRawGlobalVariables Return the raw global variables operand.
getRawImportedEntities Return the raw imported entities operand.
getRawMacros Return the raw macros operand.
getRawProducer Return the raw producer operand.
getRawRetainedTypes Return the raw retained types operand.
getRawSDK Return the raw sdk operand.
getRawSplitDebugFilename Return the raw split debug filename operand.
getRawSysRoot Return the raw sys root operand.
getRetainedTypes Return the retained types.
getRuntimeVersion Return the runtime version.
getSDK Return the sdk.
getScope Return the scope.
getSource Return the source.
getSourceLanguage Return the source language.
getSplitDebugFilename Return the split debug filename.
getSplitDebugInlining Return the split debug inlining.
getSysRoot Return the sys root.
getTag Return the tag.
isAlwaysReplaceable Return true if this node kind is always RAUW-replaceable (e.g. DIAssignID).
isDebugDirectivesOnly Return true if this is debug directives only.
isDebugInfoForProfiling Return true if this is debug info for profiling.
isDistinct Return true if this node is distinct (not uniqued).
isNoDebug Return true if this is no debug.
isOptimized Return true if this is optimized.
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.
replaceEnumTypes Replace arrays.
replaceGlobalVariables Replace the global variables.
replaceImportedEntities Replace the imported entities.
replaceMacros Replace the macros.
replaceOperandWith Replace a specific operand.
replaceRetainedTypes Replace the retained types.
resolve Resolve a unique, unresolved node.
resolveCycles Resolve cycles.
setDWOId Set the dwo id.
setSplitDebugInlining Set the split debug inlining.

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.
emissionKindString Return the string name for a debug emission kind.
fromCaptureComponents Convert CaptureComponents to !captures metadata. The return value may be nullptr.
get get overloads
getDistinct getDistinct overloads
getEmissionKind Return the emission kind.
getFlag Return the flag.
getFlagString Return the flag string.
getIfExists getIfExists overloads
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.
getNameTableKind Return the name table kind.
getTemporary getTemporary overloads
intersect Intersect metadata nodes A and B.
nameTableKindString Return the string name for a debug name-table kind.
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.
splitFlags Split up a flags bitfield.
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.
getOperandAs Return the operand as.
getStringOperand Return the string operand.
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.
setTag Allow subclasses to mutate the tag.
storeDistinctInContext Register this node as a distinct MDNode owned by the LLVMContext.

Protected Static Member Functions

NameDescription
getCanonicalMDString Return the canonical md string.
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.
memprof::getMIBAllocTypeReturns the allocation type from an MIB metadata node.
memprof::getMIBStackNodeReturns the stack node from an MIB metadata node.