#include "llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/DebugInfo/CodeView/RecordSerialization.h"
#include "llvm/DebugInfo/CodeView/TypeIndex.h"
#include "llvm/DebugInfo/MSF/MSFBuilder.h"
#include "llvm/DebugInfo/MSF/MappedBlockStream.h"
#include "llvm/DebugInfo/PDB/Native/RawTypes.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/BinaryByteStream.h"
#include "llvm/Support/BinaryStreamWriter.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/TimeProfiler.h"
#include <algorithm>
#include <cstdint>
#include <numeric>
usingnamespacellvm;
usingnamespacellvm::msf;
usingnamespacellvm::pdb;
usingnamespacellvm::support;
TpiStreamBuilder::TpiStreamBuilder(MSFBuilder &Msf, uint32_t StreamIdx)
: … { … }
TpiStreamBuilder::~TpiStreamBuilder() = default;
void TpiStreamBuilder::setVersionHeader(PdbRaw_TpiVer Version) { … }
void TpiStreamBuilder::updateTypeIndexOffsets(ArrayRef<uint16_t> Sizes) { … }
void TpiStreamBuilder::addTypeRecord(ArrayRef<uint8_t> Record,
std::optional<uint32_t> Hash) { … }
void TpiStreamBuilder::addTypeRecords(ArrayRef<uint8_t> Types,
ArrayRef<uint16_t> Sizes,
ArrayRef<uint32_t> Hashes) { … }
Error TpiStreamBuilder::finalize() { … }
uint32_t TpiStreamBuilder::calculateSerializedLength() { … }
uint32_t TpiStreamBuilder::calculateHashBufferSize() const { … }
uint32_t TpiStreamBuilder::calculateIndexOffsetSize() const { … }
Error TpiStreamBuilder::finalizeMsfLayout() { … }
Error TpiStreamBuilder::commit(const msf::MSFLayout &Layout,
WritableBinaryStreamRef Buffer) { … }