LLVM 20.0.0git
|
A 32-bit type reference. More...
#include "llvm/DebugInfo/CodeView/TypeIndex.h"
Public Member Functions | |
TypeIndex () | |
TypeIndex (uint32_t Index) | |
TypeIndex (SimpleTypeKind Kind) | |
TypeIndex (SimpleTypeKind Kind, SimpleTypeMode Mode) | |
uint32_t | getIndex () const |
void | setIndex (uint32_t I) |
bool | isSimple () const |
bool | isDecoratedItemId () const |
bool | isNoneType () const |
uint32_t | toArrayIndex () const |
TypeIndex | removeDecoration () |
SimpleTypeKind | getSimpleKind () const |
SimpleTypeMode | getSimpleMode () const |
TypeIndex | makeDirect () const |
TypeIndex & | operator+= (unsigned N) |
TypeIndex & | operator++ () |
TypeIndex | operator++ (int) |
TypeIndex & | operator-= (unsigned N) |
TypeIndex & | operator-- () |
TypeIndex | operator-- (int) |
Static Public Member Functions | |
static TypeIndex | fromArrayIndex (uint32_t Index) |
static TypeIndex | fromDecoratedArrayIndex (bool IsItem, uint32_t Index) |
static TypeIndex | None () |
static TypeIndex | Void () |
static TypeIndex | VoidPointer32 () |
static TypeIndex | VoidPointer64 () |
static TypeIndex | NullptrT () |
static TypeIndex | SignedCharacter () |
static TypeIndex | UnsignedCharacter () |
static TypeIndex | NarrowCharacter () |
static TypeIndex | WideCharacter () |
static TypeIndex | Int16Short () |
static TypeIndex | UInt16Short () |
static TypeIndex | Int32 () |
static TypeIndex | UInt32 () |
static TypeIndex | Int32Long () |
static TypeIndex | UInt32Long () |
static TypeIndex | Int64 () |
static TypeIndex | UInt64 () |
static TypeIndex | Int64Quad () |
static TypeIndex | UInt64Quad () |
static TypeIndex | Float32 () |
static TypeIndex | Float64 () |
static StringRef | simpleTypeName (TypeIndex TI) |
Static Public Attributes | |
static const uint32_t | FirstNonSimpleIndex = 0x1000 |
static const uint32_t | SimpleKindMask = 0x000000ff |
static const uint32_t | SimpleModeMask = 0x00000700 |
static const uint32_t | DecoratedItemIdMask = 0x80000000 |
Friends | |
bool | operator== (const TypeIndex &A, const TypeIndex &B) |
bool | operator!= (const TypeIndex &A, const TypeIndex &B) |
bool | operator< (const TypeIndex &A, const TypeIndex &B) |
bool | operator<= (const TypeIndex &A, const TypeIndex &B) |
bool | operator> (const TypeIndex &A, const TypeIndex &B) |
bool | operator>= (const TypeIndex &A, const TypeIndex &B) |
TypeIndex | operator+ (const TypeIndex &A, uint32_t N) |
TypeIndex | operator- (const TypeIndex &A, uint32_t N) |
uint32_t | operator- (const TypeIndex &A, const TypeIndex &B) |
A 32-bit type reference.
Types are indexed by their order of appearance in .debug$T plus 0x1000. Type indices less than 0x1000 are "simple" types, composed of a SimpleTypeMode byte followed by a SimpleTypeKind byte.
Definition at line 96 of file TypeIndex.h.
|
inline |
Definition at line 104 of file TypeIndex.h.
Referenced by Float32(), Float64(), fromArrayIndex(), fromDecoratedArrayIndex(), Int16Short(), Int32(), Int32Long(), Int64(), Int64Quad(), NarrowCharacter(), None(), NullptrT(), removeDecoration(), SignedCharacter(), UInt16Short(), UInt32(), UInt32Long(), UInt64(), UInt64Quad(), UnsignedCharacter(), Void(), VoidPointer32(), VoidPointer64(), and WideCharacter().
|
inlineexplicit |
Definition at line 105 of file TypeIndex.h.
|
inlineexplicit |
Definition at line 106 of file TypeIndex.h.
|
inline |
Definition at line 108 of file TypeIndex.h.
|
inlinestatic |
Definition at line 195 of file TypeIndex.h.
References llvm::codeview::Float32, and TypeIndex().
|
inlinestatic |
Definition at line 196 of file TypeIndex.h.
References llvm::codeview::Float64, and TypeIndex().
Definition at line 123 of file TypeIndex.h.
References FirstNonSimpleIndex, and TypeIndex().
Referenced by llvm::codeview::LazyRandomTypeCollection::getFirst(), llvm::codeview::TypeTableCollection::getFirst(), llvm::codeview::AppendingTypeTableBuilder::nextTypeIndex(), llvm::codeview::GlobalTypeTableBuilder::nextTypeIndex(), llvm::codeview::MergingTypeTableBuilder::nextTypeIndex(), llvm::codeview::TypeDumpVisitor::visitTypeBegin(), and llvm::logicalview::LVTypeVisitor::visitTypeBegin().
|
inlinestatic |
Definition at line 127 of file TypeIndex.h.
References DecoratedItemIdMask, FirstNonSimpleIndex, and TypeIndex().
|
inline |
Definition at line 111 of file TypeIndex.h.
Referenced by llvm::logicalview::LVLogicalVisitor::createElement(), llvm::logicalview::LVLogicalVisitor::getElement(), llvm::DenseMapInfo< codeview::TypeIndex >::getHashValue(), llvm::logicalview::getTrueType(), llvm::codeview::CodeViewRecordIO::mapInteger(), llvm::logicalview::LVLogicalVisitor::printMemberBegin(), llvm::logicalview::LVLogicalVisitor::printTypeBegin(), llvm::codeview::printTypeIndex(), toArrayIndex(), llvm::logicalview::LVLogicalVisitor::visitKnownRecord(), and llvm::logicalview::LVTypeVisitor::visitTypeBegin().
|
inline |
Definition at line 136 of file TypeIndex.h.
References assert(), isSimple(), and SimpleKindMask.
Referenced by llvm::codeview::getSizeInBytesForTypeIndex(), makeDirect(), simpleTypeName(), and llvm::logicalview::LVLogicalVisitor::visitKnownRecord().
|
inline |
Definition at line 141 of file TypeIndex.h.
References assert(), isSimple(), and SimpleModeMask.
Referenced by llvm::pdb::NativeTypePointer::getLength(), llvm::codeview::getSizeInBytesForTypeIndex(), llvm::pdb::NativeTypePointer::NativeTypePointer(), and simpleTypeName().
|
inlinestatic |
Definition at line 176 of file TypeIndex.h.
References llvm::codeview::Int16Short, and TypeIndex().
|
inlinestatic |
Definition at line 182 of file TypeIndex.h.
References llvm::codeview::Int32, and TypeIndex().
|
inlinestatic |
Definition at line 184 of file TypeIndex.h.
References llvm::codeview::Int32Long, and TypeIndex().
|
inlinestatic |
Definition at line 188 of file TypeIndex.h.
References llvm::codeview::Int64, and TypeIndex().
|
inlinestatic |
Definition at line 190 of file TypeIndex.h.
References llvm::codeview::Int64Quad, and TypeIndex().
|
inline |
Definition at line 114 of file TypeIndex.h.
References DecoratedItemIdMask.
|
inline |
Definition at line 116 of file TypeIndex.h.
References None().
Referenced by llvm::logicalview::LVLogicalVisitor::getElement(), llvm::pdb::NativeInlineSiteSymbol::getName(), llvm::codeview::printTypeIndex(), simpleTypeName(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), and llvm::logicalview::LVLogicalVisitor::visitKnownRecord().
|
inline |
Definition at line 113 of file TypeIndex.h.
References FirstNonSimpleIndex.
Referenced by llvm::logicalview::LVLogicalVisitor::getElement(), llvm::logicalview::getRecordName(), getSimpleKind(), getSimpleMode(), llvm::codeview::getSizeInBytesForTypeIndex(), llvm::pdb::NativeEnumTypes::NativeEnumTypes(), llvm::pdb::NativeTypePointer::NativeTypePointer(), llvm::codeview::printTypeIndex(), simpleTypeName(), toArrayIndex(), llvm::logicalview::LVSymbolVisitor::visitKnownRecord(), and llvm::logicalview::LVLogicalVisitor::visitKnownRecord().
|
inline |
Definition at line 146 of file TypeIndex.h.
References getSimpleKind().
Referenced by llvm::pdb::NativeTypePointer::getTypeId().
|
inlinestatic |
Definition at line 170 of file TypeIndex.h.
References llvm::codeview::NarrowCharacter, and TypeIndex().
|
inlinestatic |
Definition at line 148 of file TypeIndex.h.
References llvm::codeview::None, and TypeIndex().
Referenced by isNoneType().
|
inlinestatic |
Definition at line 157 of file TypeIndex.h.
References llvm::codeview::NearPointer, TypeIndex(), and llvm::codeview::Void.
Referenced by simpleTypeName().
|
inline |
Definition at line 203 of file TypeIndex.h.
Referenced by operator++().
|
inline |
Definition at line 208 of file TypeIndex.h.
References llvm::codeview::Copy, and operator++().
Definition at line 198 of file TypeIndex.h.
References N.
|
inline |
Definition at line 220 of file TypeIndex.h.
Referenced by operator--().
|
inline |
Definition at line 225 of file TypeIndex.h.
References llvm::codeview::Copy, and operator--().
Definition at line 214 of file TypeIndex.h.
|
inline |
Definition at line 132 of file TypeIndex.h.
References DecoratedItemIdMask, and TypeIndex().
|
inline |
Definition at line 112 of file TypeIndex.h.
References I.
Referenced by llvm::logicalview::getTrueType(), and llvm::codeview::CodeViewRecordIO::mapInteger().
|
inlinestatic |
Definition at line 164 of file TypeIndex.h.
References llvm::codeview::SignedCharacter, and TypeIndex().
Definition at line 71 of file TypeIndex.cpp.
References assert(), llvm::codeview::Direct, getSimpleKind(), getSimpleMode(), isNoneType(), isSimple(), and NullptrT().
Referenced by llvm::format_provider< codeview::TypeIndex >::format(), llvm::logicalview::LVLogicalVisitor::getElement(), llvm::codeview::LazyRandomTypeCollection::getTypeName(), llvm::codeview::TypeTableCollection::getTypeName(), and llvm::codeview::printTypeIndex().
|
inline |
Definition at line 118 of file TypeIndex.h.
References assert(), DecoratedItemIdMask, FirstNonSimpleIndex, getIndex(), and isSimple().
Referenced by llvm::codeview::TypeTableCollection::getNext(), and llvm::codeview::MergingTypeTableBuilder::insertRecordAs().
|
inlinestatic |
Definition at line 179 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt16Short.
|
inlinestatic |
Definition at line 183 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt32.
|
inlinestatic |
Definition at line 185 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt32Long.
|
inlinestatic |
Definition at line 189 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt64.
|
inlinestatic |
Definition at line 191 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt64Quad.
|
inlinestatic |
Definition at line 167 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UnsignedCharacter.
|
inlinestatic |
Definition at line 149 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::Void.
|
inlinestatic |
Definition at line 150 of file TypeIndex.h.
References llvm::codeview::NearPointer32, TypeIndex(), and llvm::codeview::Void.
|
inlinestatic |
Definition at line 153 of file TypeIndex.h.
References llvm::codeview::NearPointer64, TypeIndex(), and llvm::codeview::Void.
|
inlinestatic |
Definition at line 173 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::WideCharacter.
Definition at line 235 of file TypeIndex.h.
Definition at line 255 of file TypeIndex.h.
Definition at line 268 of file TypeIndex.h.
Definition at line 261 of file TypeIndex.h.
Definition at line 239 of file TypeIndex.h.
Definition at line 243 of file TypeIndex.h.
Definition at line 231 of file TypeIndex.h.
Definition at line 247 of file TypeIndex.h.
Definition at line 251 of file TypeIndex.h.
Definition at line 101 of file TypeIndex.h.
Referenced by fromDecoratedArrayIndex(), isDecoratedItemId(), removeDecoration(), and toArrayIndex().
Definition at line 98 of file TypeIndex.h.
Referenced by llvm::logicalview::LVLogicalVisitor::createElement(), fromArrayIndex(), fromDecoratedArrayIndex(), llvm::codeview::AppendingTypeTableBuilder::getFirst(), llvm::codeview::GlobalTypeTableBuilder::getFirst(), llvm::codeview::MergingTypeTableBuilder::getFirst(), isSimple(), slotForIndex(), and toArrayIndex().
Definition at line 99 of file TypeIndex.h.
Referenced by getSimpleKind().
Definition at line 100 of file TypeIndex.h.
Referenced by getSimpleMode().