LLVM 22.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 LLVM_ABI 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 97 of file TypeIndex.h.
|
inline |
Definition at line 105 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 106 of file TypeIndex.h.
|
inlineexplicit |
Definition at line 107 of file TypeIndex.h.
|
inline |
Definition at line 109 of file TypeIndex.h.
|
inlinestatic |
Definition at line 196 of file TypeIndex.h.
References llvm::codeview::Float32, and TypeIndex().
|
inlinestatic |
Definition at line 197 of file TypeIndex.h.
References llvm::codeview::Float64, and TypeIndex().
Definition at line 124 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 128 of file TypeIndex.h.
References DecoratedItemIdMask, FirstNonSimpleIndex, and TypeIndex().
|
inline |
Definition at line 112 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 137 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 142 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 177 of file TypeIndex.h.
References llvm::codeview::Int16Short, and TypeIndex().
|
inlinestatic |
Definition at line 183 of file TypeIndex.h.
References llvm::codeview::Int32, and TypeIndex().
|
inlinestatic |
Definition at line 185 of file TypeIndex.h.
References llvm::codeview::Int32Long, and TypeIndex().
|
inlinestatic |
Definition at line 189 of file TypeIndex.h.
References llvm::codeview::Int64, and TypeIndex().
|
inlinestatic |
Definition at line 191 of file TypeIndex.h.
References llvm::codeview::Int64Quad, and TypeIndex().
|
inline |
Definition at line 115 of file TypeIndex.h.
References DecoratedItemIdMask.
|
inline |
Definition at line 117 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 114 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 147 of file TypeIndex.h.
References getSimpleKind().
Referenced by llvm::pdb::NativeTypePointer::getTypeId().
|
inlinestatic |
Definition at line 171 of file TypeIndex.h.
References llvm::codeview::NarrowCharacter, and TypeIndex().
|
inlinestatic |
Definition at line 149 of file TypeIndex.h.
References llvm::codeview::None, and TypeIndex().
Referenced by isNoneType().
|
inlinestatic |
Definition at line 158 of file TypeIndex.h.
References llvm::codeview::NearPointer, TypeIndex(), and llvm::codeview::Void.
Referenced by simpleTypeName().
|
inline |
Definition at line 204 of file TypeIndex.h.
Referenced by operator++().
|
inline |
Definition at line 209 of file TypeIndex.h.
References llvm::codeview::Copy, and operator++().
Definition at line 199 of file TypeIndex.h.
References N.
|
inline |
Definition at line 221 of file TypeIndex.h.
Referenced by operator--().
|
inline |
Definition at line 226 of file TypeIndex.h.
References llvm::codeview::Copy, and operator--().
Definition at line 215 of file TypeIndex.h.
|
inline |
Definition at line 133 of file TypeIndex.h.
References DecoratedItemIdMask, and TypeIndex().
|
inline |
Definition at line 113 of file TypeIndex.h.
References I.
Referenced by llvm::logicalview::getTrueType(), and llvm::codeview::CodeViewRecordIO::mapInteger().
|
inlinestatic |
Definition at line 165 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 119 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 180 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt16Short.
|
inlinestatic |
Definition at line 184 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt32.
|
inlinestatic |
Definition at line 186 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt32Long.
|
inlinestatic |
Definition at line 190 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt64.
|
inlinestatic |
Definition at line 192 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UInt64Quad.
|
inlinestatic |
Definition at line 168 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::UnsignedCharacter.
|
inlinestatic |
Definition at line 150 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::Void.
|
inlinestatic |
Definition at line 151 of file TypeIndex.h.
References llvm::codeview::NearPointer32, TypeIndex(), and llvm::codeview::Void.
|
inlinestatic |
Definition at line 154 of file TypeIndex.h.
References llvm::codeview::NearPointer64, TypeIndex(), and llvm::codeview::Void.
|
inlinestatic |
Definition at line 174 of file TypeIndex.h.
References TypeIndex(), and llvm::codeview::WideCharacter.
Definition at line 236 of file TypeIndex.h.
Definition at line 256 of file TypeIndex.h.
Definition at line 269 of file TypeIndex.h.
Definition at line 262 of file TypeIndex.h.
Definition at line 240 of file TypeIndex.h.
Definition at line 244 of file TypeIndex.h.
Definition at line 232 of file TypeIndex.h.
Definition at line 248 of file TypeIndex.h.
Definition at line 252 of file TypeIndex.h.
Definition at line 102 of file TypeIndex.h.
Referenced by fromDecoratedArrayIndex(), isDecoratedItemId(), removeDecoration(), and toArrayIndex().
Definition at line 99 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 100 of file TypeIndex.h.
Referenced by getSimpleKind().
Definition at line 101 of file TypeIndex.h.
Referenced by getSimpleMode().