class MergingTypeTableBuilder
Declaration
class MergingTypeTableBuilder : public TypeCollection { /* full declaration omitted */ };
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:28
Inherits from: TypeCollection
Member Variables
- private llvm::BumpPtrAllocator& RecordStorage
- Storage for records. These need to outlive the TypeTableBuilder.
- private llvm::codeview::SimpleTypeSerializer SimpleSerializer
- A serializer that can write non-continuation leaf types. Only used as a convenience function so that we can provide an interface method to write an unserialized record.
- private DenseMap<llvm::codeview::LocallyHashedType, llvm::codeview::TypeIndex> HashedRecords
- Hash table.
- private SmallVector<ArrayRef<uint8_t>, 2> SeenRecords
- Contains a list of all records indexed by TypeIndex.toArrayIndex().
Method Overview
- public MergingTypeTableBuilder(llvm::BumpPtrAllocator & Storage)
- public uint32_t capacity()
- public bool contains(llvm::codeview::TypeIndex Index)
- public llvm::BumpPtrAllocator & getAllocator()
- public Optional<llvm::codeview::TypeIndex> getFirst()
- public Optional<llvm::codeview::TypeIndex> getNext(llvm::codeview::TypeIndex Prev)
- public llvm::codeview::CVType getType(llvm::codeview::TypeIndex Index)
- public llvm::StringRef getTypeName(llvm::codeview::TypeIndex Index)
- public llvm::codeview::TypeIndex insertRecord(llvm::codeview::ContinuationRecordBuilder & Builder)
- public llvm::codeview::TypeIndex insertRecordAs(llvm::hash_code Hash, ArrayRef<uint8_t> & Record)
- public llvm::codeview::TypeIndex insertRecordBytes(ArrayRef<uint8_t> & Record)
- public llvm::codeview::TypeIndex nextTypeIndex() const
- public ArrayRef<ArrayRef<uint8_t>> records() const
- public bool replaceType(llvm::codeview::TypeIndex & Index, llvm::codeview::CVType Data, bool Stabilize)
- public void reset()
- public uint32_t size()
- public template <typename T>llvm::codeview::TypeIndex writeLeafType(T & Record)
- public ~MergingTypeTableBuilder()
Inherited from TypeCollection:
- public ForEachRecord
- public capacity
- public contains
- public empty
- public getFirst
- public getNext
- public getType
- public getTypeName
- public replaceType
- public size
Methods
¶MergingTypeTableBuilder(
llvm::BumpPtrAllocator& Storage)
MergingTypeTableBuilder(
llvm::BumpPtrAllocator& Storage)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:44
Parameters
- llvm::BumpPtrAllocator& Storage
¶uint32_t capacity()
uint32_t capacity()
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:54
¶bool contains(llvm::codeview::TypeIndex Index)
bool contains(llvm::codeview::TypeIndex Index)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:52
Parameters
¶llvm::BumpPtrAllocator& getAllocator()
llvm::BumpPtrAllocator& getAllocator()
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:61
¶Optional<llvm::codeview::TypeIndex> getFirst()
Optional<llvm::codeview::TypeIndex> getFirst()
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:48
¶Optional<llvm::codeview::TypeIndex> getNext(
llvm::codeview::TypeIndex Prev)
Optional<llvm::codeview::TypeIndex> getNext(
llvm::codeview::TypeIndex Prev)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:49
Parameters
¶llvm::codeview::CVType getType(
llvm::codeview::TypeIndex Index)
llvm::codeview::CVType getType(
llvm::codeview::TypeIndex Index)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:50
Parameters
¶llvm::StringRef getTypeName(
llvm::codeview::TypeIndex Index)
llvm::StringRef getTypeName(
llvm::codeview::TypeIndex Index)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:51
Parameters
¶llvm::codeview::TypeIndex insertRecord(
llvm::codeview::ContinuationRecordBuilder&
Builder)
llvm::codeview::TypeIndex insertRecord(
llvm::codeview::ContinuationRecordBuilder&
Builder)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:67
Parameters
¶llvm::codeview::TypeIndex insertRecordAs(
llvm::hash_code Hash,
ArrayRef<uint8_t>& Record)
llvm::codeview::TypeIndex insertRecordAs(
llvm::hash_code Hash,
ArrayRef<uint8_t>& Record)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:65
Parameters
- llvm::hash_code Hash
- ArrayRef<uint8_t>& Record
¶llvm::codeview::TypeIndex insertRecordBytes(
ArrayRef<uint8_t>& Record)
llvm::codeview::TypeIndex insertRecordBytes(
ArrayRef<uint8_t>& Record)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:66
Parameters
- ArrayRef<uint8_t>& Record
¶llvm::codeview::TypeIndex nextTypeIndex() const
llvm::codeview::TypeIndex nextTypeIndex() const
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:59
¶ArrayRef<ArrayRef<uint8_t>> records() const
ArrayRef<ArrayRef<uint8_t>> records() const
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:63
¶bool replaceType(llvm::codeview::TypeIndex& Index,
llvm::codeview::CVType Data,
bool Stabilize)
bool replaceType(llvm::codeview::TypeIndex& Index,
llvm::codeview::CVType Data,
bool Stabilize)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:55
Parameters
- llvm::codeview::TypeIndex& Index
- llvm::codeview::CVType Data
- bool Stabilize
¶void reset()
void reset()
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:58
¶uint32_t size()
uint32_t size()
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:53
¶template <typename T>
llvm::codeview::TypeIndex writeLeafType(T& Record)
template <typename T>
llvm::codeview::TypeIndex writeLeafType(T& Record)
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:69
Templates
- T
Parameters
- T& Record
¶~MergingTypeTableBuilder()
~MergingTypeTableBuilder()
Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:45