LLVM: llvm::DIBasicType Class Reference (original) (raw)
Basic type, like 'int' or 'float'. More...
#include "[llvm/IR/DebugInfoMetadata.h](DebugInfoMetadata%5F8h%5Fsource.html)"
| Public Types | ||
|---|---|---|
| enum class | Signedness { Signed, Unsigned } | |
| Public Types inherited from llvm::DINode | ||
| enum | DIFlags : uint32_t { FlagAccessibility = FlagPrivate | FlagProtected | FlagPublic , FlagPtrToMemberRep } |
| Debug info flags. More... | ||
| Public Types inherited from llvm::MDNode | ||
| using | op_iterator = const MDOperand * | |
| using | op_range = iterator_range<op_iterator> | |
| Public Types inherited from llvm::Metadata | ||
| enum | MetadataKind |
| Static Public Member Functions | |
|---|---|
| static bool | classof (const Metadata *MD) |
| Static Public Member Functions inherited from llvm::DIType | |
| static bool | classof (const Metadata *MD) |
| Static Public Member Functions inherited from llvm::DIScope | |
| static bool | classof (const Metadata *MD) |
| Static Public Member Functions inherited from llvm::DINode | |
| static LLVM_ABI DIFlags | getFlag (StringRef Flag) |
| static LLVM_ABI StringRef | getFlagString (DIFlags Flag) |
| static LLVM_ABI DIFlags | splitFlags (DIFlags Flags, SmallVectorImpl< DIFlags > &SplitFlags) |
| Split up a flags bitfield. | |
| static bool | classof (const Metadata *MD) |
| Static Public Member Functions inherited from llvm::MDNode | |
| static MDTuple * | get (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static MDTuple * | getIfExists (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static MDTuple * | getDistinct (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static TempMDTuple | getTemporary (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
| static LLVM_ABI void | deleteTemporary (MDNode *N) |
| Deallocate a node created by getTemporary. | |
| template<class T> | |
| static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithPermanent (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a permanent one. | |
| template<class T> | |
| static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithUniqued (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a uniqued one. | |
| template<class T> | |
| static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithDistinct (std::unique_ptr< T, TempMDNodeDeleter > N) |
| Replace a temporary node with a distinct one. | |
| static bool | classof (const Metadata *MD) |
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| static LLVM_ABI MDNode * | concatenate (MDNode *A, MDNode *B) |
| Methods for metadata merging. | |
| static LLVM_ABI MDNode * | intersect (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericTBAA (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericFPMath (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericRange (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericNoaliasAddrspace (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericAliasScope (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMostGenericAlignmentOrDereferenceable (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMergedProfMetadata (MDNode *A, MDNode *B, const Instruction *AInstr, const Instruction *BInstr) |
| Merge !prof metadata from two instructions. | |
| static LLVM_ABI MDNode * | getMergedMemProfMetadata (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMergedCallsiteMetadata (MDNode *A, MDNode *B) |
| static LLVM_ABI MDNode * | getMergedCalleeTypeMetadata (const MDNode *A, const MDNode *B) |
| static LLVM_ABI CaptureComponents | toCaptureComponents (const MDNode *MD) |
| Convert !captures metadata to CaptureComponents. MD may be nullptr. | |
| static LLVM_ABI MDNode * | fromCaptureComponents (LLVMContext &Ctx, CaptureComponents CC) |
| Convert CaptureComponents to !captures metadata. |
| Friends | |
|---|---|
| class | LLVMContextImpl |
| class | MDNode |
| Additional Inherited Members | |
|---|---|
| Static Public Attributes inherited from llvm::Metadata | |
| static constexpr const unsigned | PoisonGeneratingIDs [] |
| Metadata IDs that may generate poison. | |
| Protected Types inherited from llvm::MDNode | |
| using | mutable_op_range = iterator_range<MDOperand *> |
| Protected Types inherited from llvm::Metadata | |
| enum | StorageType { Uniqued, Distinct, Temporary } |
| Active type of storage. More... | |
| Protected Attributes inherited from llvm::Metadata | |
| unsigned char | Storage: 7 |
| Storage flag for non-uniqued, otherwise unowned, metadata. | |
| unsigned char | SubclassData1: 1 |
| unsigned short | SubclassData16 = 0 |
| unsigned | SubclassData32 = 0 |
| Static Protected Attributes inherited from llvm::DIType | |
| static constexpr unsigned | N_OPERANDS = 5 |
Basic type, like 'int' or 'float'.
TODO: Split out DW_TAG_unspecified_type. TODO: Drop unused accessors.
Definition at line 889 of file DebugInfoMetadata.h.
◆ Signedness
Definition at line 900 of file DebugInfoMetadata.h.
References AbstractManglingParser< Derived, Alloc >::Ops, AlignInBits, llvm::CallingConv::C, llvm::DIType::DIType(), Flags, NumExtraInhabitants, llvm::Metadata::Storage, and Tag.
Referenced by DEFINE_MDNODE_GET(), DEFINE_MDNODE_GET(), DEFINE_MDNODE_GET(), DEFINE_MDNODE_GET(), DEFINE_MDNODE_GET(), getImpl(), getImpl(), getImpl(), and llvm::DIFixedPointType::MDNode.
◆ DIBasicType() [2/2]
◆ ~DIBasicType()
| llvm::DIBasicType::~DIBasicType ( ) | protecteddefault |
|---|
◆ classof()
◆ cloneImpl()
| TempDIBasicType llvm::DIBasicType::cloneImpl ( ) const | inlineprotected |
|---|
Definition at line 944 of file DebugInfoMetadata.h.
References llvm::DIType::getAlignInBits(), llvm::MDNode::getContext(), getDataSizeInBits(), getEncoding(), llvm::DIType::getFlags(), llvm::DIType::getNumExtraInhabitants(), llvm::DIType::getRawName(), llvm::DIType::getRawSizeInBits(), llvm::DINode::getTag(), and llvm::MDNode::getTemporary().
Referenced by DEFINE_MDNODE_GET(), and llvm::DIFixedPointType::DEFINE_MDNODE_GET().
◆ DEFINE_MDNODE_GET() [1/5]
| unsigned StringRef uint64_t FlagZero unsigned StringRef uint64_t uint32_t unsigned DIFlags Flags unsigned StringRef uint64_t uint32_t unsigned uint32_t DIFlags Flags unsigned MDString uint64_t uint32_t unsigned uint32_t uint32_t DIFlags Flags llvm::DIBasicType::DEFINE_MDNODE_GET ( DIBasicType , (unsigned Tag, MDString *Name, Metadata *SizeInBits, uint32_t AlignInBits, unsigned Encoding, uint32_t NumExtraInhabitants, uint32_t DataSizeInBits, DIFlags Flags) , (Tag, Name, SizeInBits, AlignInBits, Encoding, NumExtraInhabitants, DataSizeInBits, Flags) ) const | inline |
|---|
◆ DEFINE_MDNODE_GET() [2/5]
| unsigned StringRef uint64_t FlagZero llvm::DIBasicType::DEFINE_MDNODE_GET | ( | DIBasicType | , |
|---|---|---|---|
| (unsigned Tag, MDString *Name, uint64_t SizeInBits) | , | ||
| (Tag, Name, SizeInBits, 0, 0, 0, 0, FlagZero) | ) |
◆ DEFINE_MDNODE_GET() [3/5]
| unsigned StringRef uint64_t FlagZero unsigned StringRef uint64_t uint32_t unsigned DIFlags Flags llvm::DIBasicType::DEFINE_MDNODE_GET | ( | DIBasicType | , |
|---|---|---|---|
| (unsigned Tag, MDString *Name, uint64_t SizeInBits, uint32_t AlignInBits, unsigned Encoding, DIFlags Flags) | , | ||
| (Tag, Name, SizeInBits, AlignInBits, Encoding, 0, 0, Flags) | ) |
◆ DEFINE_MDNODE_GET() [4/5]
| llvm::DIBasicType::DEFINE_MDNODE_GET | ( | DIBasicType | , |
|---|---|---|---|
| (unsigned Tag, StringRef Name) | , | ||
| (Tag, Name, 0, 0, 0, 0, 0, FlagZero) | ) |
◆ DEFINE_MDNODE_GET() [5/5]
| unsigned StringRef uint64_t FlagZero unsigned StringRef uint64_t uint32_t unsigned DIFlags Flags unsigned StringRef uint64_t uint32_t unsigned uint32_t DIFlags Flags llvm::DIBasicType::DEFINE_MDNODE_GET | ( | DIBasicType | , |
|---|---|---|---|
| (unsigned Tag, StringRef Name, uint64_t SizeInBits, uint32_t AlignInBits, unsigned Encoding, uint32_t NumExtraInhabitants, uint32_t DataSizeInBits, DIFlags Flags) | , | ||
| (Tag, Name, SizeInBits, AlignInBits, Encoding, NumExtraInhabitants, DataSizeInBits, Flags) | ) |
◆ getDataSizeInBits()
| uint32_t llvm::DIBasicType::getDataSizeInBits ( ) const | inline |
|---|
◆ getEncoding()
| unsigned llvm::DIBasicType::getEncoding ( ) const | inline |
|---|
◆ getImpl() [1/3]
| DIBasicType * DIBasicType::getImpl ( LLVMContext & Context, unsigned Tag, MDString * Name, Metadata * SizeInBits, uint32_t AlignInBits, unsigned Encoding, uint32_t NumExtraInhabitants, uint32_t DataSizeInBits, DIFlags Flags, StorageType Storage, bool ShouldCreate = true ) | staticprotected |
|---|
Definition at line 875 of file DebugInfoMetadata.cpp.
References AbstractManglingParser< Derived, Alloc >::Ops, AlignInBits, assert(), DEFINE_GETIMPL_LOOKUP, DEFINE_GETIMPL_STORE, DIBasicType(), Flags, isCanonical(), Name, NumExtraInhabitants, SizeInBits, llvm::Metadata::Storage, and Tag.
◆ getImpl() [2/3]
| DIBasicType * llvm::DIBasicType::getImpl ( LLVMContext & Context, unsigned Tag, MDString * Name, uint64_t SizeInBits, uint32_t AlignInBits, unsigned Encoding, uint32_t NumExtraInhabitants, uint32_t DataSizeInBits, DIFlags Flags, StorageType Storage, bool ShouldCreate = true ) | inlinestaticprotected |
|---|
Definition at line 926 of file DebugInfoMetadata.h.
References AlignInBits, DIBasicType(), Flags, llvm::ConstantAsMetadata::get(), getImpl(), llvm::Type::getInt64Ty(), Name, NumExtraInhabitants, SizeInBits, llvm::Metadata::Storage, and Tag.
◆ getImpl() [3/3]
| DIBasicType * llvm::DIBasicType::getImpl ( LLVMContext & Context, unsigned Tag, StringRef Name, uint64_t SizeInBits, uint32_t AlignInBits, unsigned Encoding, uint32_t NumExtraInhabitants, uint32_t DataSizeInBits, DIFlags Flags, StorageType Storage, bool ShouldCreate = true ) | inlinestaticprotected |
|---|
Definition at line 916 of file DebugInfoMetadata.h.
References AlignInBits, DIBasicType(), Flags, llvm::DINode::getCanonicalMDString(), getImpl(), Name, NumExtraInhabitants, SizeInBits, llvm::Metadata::Storage, and Tag.
Referenced by getImpl(), and getImpl().
◆ getSignedness()
| std::optional< DIBasicType::Signedness > DIBasicType::getSignedness | ( | ) | const |
|---|
◆ LLVMContextImpl
◆ MDNode
◆ AlignInBits [1/6]
◆ AlignInBits [2/6]
◆ AlignInBits [3/6]
◆ AlignInBits [4/6]
◆ AlignInBits [5/6]
◆ AlignInBits [6/6]
◆ DataSizeInBits [1/2]
◆ DataSizeInBits [2/2]
◆ Encoding [1/6]
◆ Encoding [2/6]
◆ Encoding [3/6]
◆ Encoding [4/6]
◆ Encoding [5/6]
◆ Encoding [6/6]
◆ Flags [1/3]
◆ Flags [2/3]
◆ Flags [3/3]
◆ Name [1/8]
◆ Name [2/8]
◆ Name [3/8]
◆ Name [4/8]
◆ Name [5/8]
◆ Name [6/8]
◆ Name [7/8]
◆ Name [8/8]
◆ NumExtraInhabitants [1/4]
◆ NumExtraInhabitants [2/4]
◆ NumExtraInhabitants [3/4]
◆ NumExtraInhabitants [4/4]
◆ SizeInBits [1/7]
◆ SizeInBits [2/7]
◆ SizeInBits [3/7]
◆ SizeInBits [4/7]
◆ SizeInBits [5/7]
◆ SizeInBits [6/7]
◆ SizeInBits [7/7]
◆ Tag [1/8]
◆ Tag [2/8]
◆ Tag [3/8]
◆ Tag [4/8]
◆ Tag [5/8]
◆ Tag [6/8]
◆ Tag [7/8]
◆ Tag [8/8]
The documentation for this class was generated from the following files:
- include/llvm/IR/DebugInfoMetadata.h
- lib/IR/DebugInfoMetadata.cpp