class GlobalTypeTableBuilder

Declaration

class GlobalTypeTableBuilder : public TypeCollection { /* full declaration omitted */ };

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:29

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::GloballyHashedType, llvm::codeview::TypeIndex> HashedRecords
Hash table.
private SmallVector<ArrayRef<uint8_t>, 2> SeenRecords
Contains a list of all records indexed by TypeIndex.toArrayIndex().
private SmallVector<llvm::codeview::GloballyHashedType, 2> SeenHashes
Contains a list of all hash values indexed by TypeIndex.toArrayIndex().

Method Overview

  • public GlobalTypeTableBuilder(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 ArrayRef<llvm::codeview::GloballyHashedType> hashes() const
  • public llvm::codeview::TypeIndex insertRecord(llvm::codeview::ContinuationRecordBuilder & Builder)
  • public template <typename CreateFunc>llvm::codeview::TypeIndex insertRecordAs(llvm::codeview::GloballyHashedType Hash, size_t RecordSize, CreateFunc Create)
  • public llvm::codeview::TypeIndex insertRecordBytes(ArrayRef<uint8_t> Data)
  • 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 ~GlobalTypeTableBuilder()

Inherited from TypeCollection:

Methods

GlobalTypeTableBuilder(
    llvm::BumpPtrAllocator& Storage)

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

Parameters

llvm::BumpPtrAllocator& Storage

uint32_t capacity()

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

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

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:56

Parameters

llvm::codeview::TypeIndex Index

llvm::BumpPtrAllocator& getAllocator()

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:65

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

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

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

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

Parameters

llvm::codeview::TypeIndex Prev

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

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

Parameters

llvm::codeview::TypeIndex Index

llvm::StringRef getTypeName(
    llvm::codeview::TypeIndex Index)

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

Parameters

llvm::codeview::TypeIndex Index

ArrayRef<llvm::codeview::GloballyHashedType>
hashes() const

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:68

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

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:108

Parameters

llvm::codeview::ContinuationRecordBuilder& Builder

template <typename CreateFunc>
llvm::codeview::TypeIndex insertRecordAs(
    llvm::codeview::GloballyHashedType Hash,
    size_t RecordSize,
    CreateFunc Create)

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:71

Templates

CreateFunc

Parameters

llvm::codeview::GloballyHashedType Hash
size_t RecordSize
CreateFunc Create

llvm::codeview::TypeIndex insertRecordBytes(
    ArrayRef<uint8_t> Data)

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:107

Parameters

ArrayRef<uint8_t> Data

llvm::codeview::TypeIndex nextTypeIndex() const

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:63

ArrayRef<ArrayRef<uint8_t>> records() const

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

bool replaceType(llvm::codeview::TypeIndex& Index,
                 llvm::codeview::CVType Data,
                 bool Stabilize)

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

Parameters

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

void reset()

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:62

uint32_t size()

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:57

template <typename T>
llvm::codeview::TypeIndex writeLeafType(T& Record)

Declared at: llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h:110

Templates

T

Parameters

T& Record

~GlobalTypeTableBuilder()

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