9#ifndef LLVM_DEBUGINFO_PDB_NATIVE_TPISTREAMBUILDER_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_TPISTREAMBUILDER_H
22class BinaryByteStream;
23template <
typename T>
struct BinaryItemTraits;
37struct TpiStreamHeader;
63 uint32_t calculateHashBufferSize()
const;
64 uint32_t calculateIndexOffsetSize()
const;
71 size_t TypeRecordBytes = 0;
74 std::vector<ArrayRef<uint8_t>> TypeRecBuffers;
75 std::vector<uint32_t> TypeHashes;
76 std::vector<codeview::TypeIndexOffset> TypeIndexOffsets;
78 std::unique_ptr<BinaryByteStream> HashValueStream;
This file defines the BumpPtrAllocator interface.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Allocate memory in an ever growing pool, as if by bump-pointer.
Lightweight error class with error context and mandatory checking.
The instances of the Type class are immutable: once they are created, they are never changed.
ArrayRef< uint8_t > data() const
uint32_t getRecordCount() const
Error finalizeMsfLayout()
TpiStreamBuilder & operator=(const TpiStreamBuilder &)=delete
void addTypeRecord(ArrayRef< uint8_t > Type, std::optional< uint32_t > Hash)
Error commit(const msf::MSFLayout &Layout, WritableBinaryStreamRef Buffer)
void addTypeRecords(ArrayRef< uint8_t > Types, ArrayRef< uint16_t > Sizes, ArrayRef< uint32_t > Hashes)
uint32_t calculateSerializedLength()
TpiStreamBuilder(const TpiStreamBuilder &)=delete
void setVersionHeader(PdbRaw_TpiVer Version)
const uint16_t kInvalidStreamIndex
This is an optimization pass for GlobalISel generic memory operations.
static ArrayRef< uint8_t > bytes(const codeview::CVType &Item)
static size_t length(const codeview::CVType &Item)