class DICompositeType
Declaration
class DICompositeType : public DIType { /* full declaration omitted */ };
Description
Composite types. TODO: Detach from DerivedTypeBase (split out MDEnumType?). TODO: Create a custom, unrelated node for DW_TAG_array_type.
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:890
Inherits from: DIType
Member Variables
Inherited from Metadata:
Method Overview
- public static llvm::DICompositeType * buildODRType(llvm::LLVMContext & Context, llvm::MDString & Identifier, unsigned int Tag, llvm::MDString * Name, llvm::Metadata * File, unsigned int Line, llvm::Metadata * Scope, llvm::Metadata * BaseType, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, llvm::DINode::DIFlags Flags, llvm::Metadata * Elements, unsigned int RuntimeLang, llvm::Metadata * VTableHolder, llvm::Metadata * TemplateParams, llvm::Metadata * Discriminator)
- public static bool classof(const llvm::Metadata * MD)
- public llvm::TempDICompositeType clone() const
- public llvm::DIType * getBaseType() const
- public llvm::DIDerivedType * getDiscriminator() const
- public llvm::DINodeArray getElements() const
- public llvm::StringRef getIdentifier() const
- public static llvm::DICompositeType * getODRType(llvm::LLVMContext & Context, llvm::MDString & Identifier, unsigned int Tag, llvm::MDString * Name, llvm::Metadata * File, unsigned int Line, llvm::Metadata * Scope, llvm::Metadata * BaseType, uint64_t SizeInBits, uint32_t AlignInBits, uint64_t OffsetInBits, llvm::DINode::DIFlags Flags, llvm::Metadata * Elements, unsigned int RuntimeLang, llvm::Metadata * VTableHolder, llvm::Metadata * TemplateParams, llvm::Metadata * Discriminator)
- public static llvm::DICompositeType * getODRTypeIfExists(llvm::LLVMContext & Context, llvm::MDString & Identifier)
- public llvm::Metadata * getRawBaseType() const
- public llvm::Metadata * getRawDiscriminator() const
- public llvm::Metadata * getRawElements() const
- public llvm::MDString * getRawIdentifier() const
- public llvm::Metadata * getRawTemplateParams() const
- public llvm::Metadata * getRawVTableHolder() const
- public unsigned int getRuntimeLang() const
- public llvm::DITemplateParameterArray getTemplateParams() const
- public llvm::DIType * getVTableHolder() const
- public void replaceElements(llvm::DINodeArray Elements)
- public void replaceTemplateParams(llvm::DITemplateParameterArray TemplateParams)
- public void replaceVTableHolder(llvm::DIType * VTableHolder)
Inherited from DIType:
- public classof
- public clone
- public cloneWithFlags
- public getAlignInBits
- public getAlignInBytes
- public getExportSymbols
- public getFlags
- public getLine
- public getName
- public getOffsetInBits
- public getRawName
- public getRawScope
- public getScope
- public getSizeInBits
- protected init
- public isAppleBlockExtension
- public isArtificial
- public isBigEndian
- public isBitField
- public isForwardDecl
- public isLValueReference
- public isLittleEndian
- public isObjcClassComplete
- public isObjectPointer
- public isPrivate
- public isProtected
- public isPublic
- public isRValueReference
- public isStaticMember
- public isTypePassByReference
- public isTypePassByValue
- public isVector
- public isVirtual
- protected mutate
Inherited from DIScope:
- public classof
- public getDirectory
- public getFile
- public getFilename
- public getName
- public getRawFile
- public getScope
- public getSource
Inherited from DINode:
- public classof
- protected getCanonicalMDString
- public getFlag
- public getFlagString
- protected getOperandAs
- protected getStringOperand
- public getTag
- protected setTag
- public splitFlags
Inherited from MDNode:
- public classof
- public clone
- public concatenate
- public deleteTemporary
- protected dropAllReferences
- public get
- public getContext
- public getDistinct
- public getIfExists
- public getMostGenericAliasScope
- public getMostGenericAlignmentOrDereferenceable
- public getMostGenericFPMath
- public getMostGenericRange
- public getMostGenericTBAA
- public getNumOperands
- public getOperand
- public getTemporary
- public intersect
- public isDistinct
- public isResolved
- public isTBAAVtableAccess
- public isTemporary
- public isUniqued
- protected mutable_begin
- protected mutable_end
- public mutable_operands
- public op_begin
- public op_end
- public operands
- public replaceAllUsesWith
- public replaceOperandWith
- public replaceWithDistinct
- public replaceWithPermanent
- public replaceWithUniqued
- public resolve
- public resolveCycles
- protected setOperand
- protected storeDistinctInContext
- protected storeImpl
- protected storeImpl
Inherited from Metadata:
- public dump
- public dump
- public getMetadataID
- protected handleChangedOperand
- public print
- public print
- public printAsOperand
- public printAsOperand
Methods
¶static llvm::DICompositeType* buildODRType(
llvm::LLVMContext& Context,
llvm::MDString& Identifier,
unsigned int Tag,
llvm::MDString* Name,
llvm::Metadata* File,
unsigned int Line,
llvm::Metadata* Scope,
llvm::Metadata* BaseType,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
llvm::DINode::DIFlags Flags,
llvm::Metadata* Elements,
unsigned int RuntimeLang,
llvm::Metadata* VTableHolder,
llvm::Metadata* TemplateParams,
llvm::Metadata* Discriminator)
static llvm::DICompositeType* buildODRType(
llvm::LLVMContext& Context,
llvm::MDString& Identifier,
unsigned int Tag,
llvm::MDString* Name,
llvm::Metadata* File,
unsigned int Line,
llvm::Metadata* Scope,
llvm::Metadata* BaseType,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
llvm::DINode::DIFlags Flags,
llvm::Metadata* Elements,
unsigned int RuntimeLang,
llvm::Metadata* VTableHolder,
llvm::Metadata* TemplateParams,
llvm::Metadata* Discriminator)
Description
Build a DICompositeType with the given ODR identifier. Looks up the mapped DICompositeType for the given ODR \c Identifier. If it doesn't exist, creates a new one. If it does exist and \a isForwardDecl(), and the new arguments would be a definition, mutates the the type in place. In either case, returns the type. If not \a LLVMContext::isODRUniquingDebugTypes(), this function returns nullptr.
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1001
Parameters
- llvm::LLVMContext& Context
- llvm::MDString& Identifier
- unsigned int Tag
- llvm::MDString* Name
- llvm::Metadata* File
- unsigned int Line
- llvm::Metadata* Scope
- llvm::Metadata* BaseType
- uint64_t SizeInBits
- uint32_t AlignInBits
- uint64_t OffsetInBits
- llvm::DINode::DIFlags Flags
- llvm::Metadata* Elements
- unsigned int RuntimeLang
- llvm::Metadata* VTableHolder
- llvm::Metadata* TemplateParams
- llvm::Metadata* Discriminator
¶static bool classof(const llvm::Metadata* MD)
static bool classof(const llvm::Metadata* MD)
Description
@ }
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1053
Parameters
- const llvm::Metadata* MD
¶llvm::TempDICompositeType clone() const
llvm::TempDICompositeType clone() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:972
¶llvm::DIType* getBaseType() const
llvm::DIType* getBaseType() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1008
¶llvm::DIDerivedType* getDiscriminator() const
llvm::DIDerivedType* getDiscriminator() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1027
¶llvm::DINodeArray getElements() const
llvm::DINodeArray getElements() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1009
¶llvm::StringRef getIdentifier() const
llvm::StringRef getIdentifier() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1018
¶static llvm::DICompositeType* getODRType(
llvm::LLVMContext& Context,
llvm::MDString& Identifier,
unsigned int Tag,
llvm::MDString* Name,
llvm::Metadata* File,
unsigned int Line,
llvm::Metadata* Scope,
llvm::Metadata* BaseType,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
llvm::DINode::DIFlags Flags,
llvm::Metadata* Elements,
unsigned int RuntimeLang,
llvm::Metadata* VTableHolder,
llvm::Metadata* TemplateParams,
llvm::Metadata* Discriminator)
static llvm::DICompositeType* getODRType(
llvm::LLVMContext& Context,
llvm::MDString& Identifier,
unsigned int Tag,
llvm::MDString* Name,
llvm::Metadata* File,
unsigned int Line,
llvm::Metadata* Scope,
llvm::Metadata* BaseType,
uint64_t SizeInBits,
uint32_t AlignInBits,
uint64_t OffsetInBits,
llvm::DINode::DIFlags Flags,
llvm::Metadata* Elements,
unsigned int RuntimeLang,
llvm::Metadata* VTableHolder,
llvm::Metadata* TemplateParams,
llvm::Metadata* Discriminator)
Description
Get a DICompositeType with the given ODR identifier. If \a LLVMContext::isODRUniquingDebugTypes(), gets the mapped DICompositeType for the given ODR \c Identifier. If none exists, creates a new node. Else, returns \c nullptr.
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:982
Parameters
- llvm::LLVMContext& Context
- llvm::MDString& Identifier
- unsigned int Tag
- llvm::MDString* Name
- llvm::Metadata* File
- unsigned int Line
- llvm::Metadata* Scope
- llvm::Metadata* BaseType
- uint64_t SizeInBits
- uint32_t AlignInBits
- uint64_t OffsetInBits
- llvm::DINode::DIFlags Flags
- llvm::Metadata* Elements
- unsigned int RuntimeLang
- llvm::Metadata* VTableHolder
- llvm::Metadata* TemplateParams
- llvm::Metadata* Discriminator
¶static llvm::DICompositeType* getODRTypeIfExists(
llvm::LLVMContext& Context,
llvm::MDString& Identifier)
static llvm::DICompositeType* getODRTypeIfExists(
llvm::LLVMContext& Context,
llvm::MDString& Identifier)
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:988
Parameters
- llvm::LLVMContext& Context
- llvm::MDString& Identifier
¶llvm::Metadata* getRawBaseType() const
llvm::Metadata* getRawBaseType() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1021
¶llvm::Metadata* getRawDiscriminator() const
llvm::Metadata* getRawDiscriminator() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1026
¶llvm::Metadata* getRawElements() const
llvm::Metadata* getRawElements() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1022
¶llvm::MDString* getRawIdentifier() const
llvm::MDString* getRawIdentifier() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1025
¶llvm::Metadata* getRawTemplateParams() const
llvm::Metadata* getRawTemplateParams() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1024
¶llvm::Metadata* getRawVTableHolder() const
llvm::Metadata* getRawVTableHolder() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1023
¶unsigned int getRuntimeLang() const
unsigned int getRuntimeLang() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1019
¶llvm::DITemplateParameterArray getTemplateParams()
const
llvm::DITemplateParameterArray getTemplateParams()
const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1015
¶llvm::DIType* getVTableHolder() const
llvm::DIType* getVTableHolder() const
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1012
¶void replaceElements(llvm::DINodeArray Elements)
void replaceElements(llvm::DINodeArray Elements)
Description
Replace operands. If this \a isUniqued() and not \a isResolved(), on a uniquing collision this will be RAUW'ed and deleted. Use a \a TrackingMDRef to keep track of its movement if necessary. @ {
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1035
Parameters
- llvm::DINodeArray Elements
¶void replaceTemplateParams(
llvm::DITemplateParameterArray TemplateParams)
void replaceTemplateParams(
llvm::DITemplateParameterArray TemplateParams)
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1048
Parameters
- llvm::DITemplateParameterArray TemplateParams
¶void replaceVTableHolder(
llvm::DIType* VTableHolder)
void replaceVTableHolder(
llvm::DIType* VTableHolder)
Declared at: llvm/include/llvm/IR/DebugInfoMetadata.h:1044
Parameters
- llvm::DIType* VTableHolder