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:

Methods

MergingTypeTableBuilder(
    llvm::BumpPtrAllocator& Storage)

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:44

Parameters

llvm::BumpPtrAllocator& Storage

uint32_t capacity()

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:54

bool contains(llvm::codeview::TypeIndex Index)

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:52

Parameters

llvm::codeview::TypeIndex Index

llvm::BumpPtrAllocator& getAllocator()

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:61

Optional<llvm::codeview::TypeIndex> getFirst()

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:48

Optional<llvm::codeview::TypeIndex> getNext(
    llvm::codeview::TypeIndex Prev)

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:49

Parameters

llvm::codeview::TypeIndex Prev

llvm::codeview::CVType getType(
    llvm::codeview::TypeIndex Index)

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:50

Parameters

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 Index

llvm::codeview::TypeIndex insertRecord(
    llvm::codeview::ContinuationRecordBuilder&
        Builder)

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:67

Parameters

llvm::codeview::ContinuationRecordBuilder& Builder

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)

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:66

Parameters

ArrayRef<uint8_t>& Record

llvm::codeview::TypeIndex nextTypeIndex() const

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:59

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)

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:55

Parameters

llvm::codeview::TypeIndex& Index
llvm::codeview::CVType Data
bool Stabilize

void reset()

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:58

uint32_t size()

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:53

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()

Declared at: llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h:45