23 Writer(Stream), Mapping(Writer, Container) {}
26 assert(!CurrentSymbol &&
"Already in a symbol mapping!");
30 if (
auto EC = writeRecordPrefix(
Record.kind()))
33 CurrentSymbol =
Record.kind();
41 assert(CurrentSymbol &&
"Not in a symbol mapping!");
52 uint8_t *StableStorage = Storage.
Allocate<uint8_t>(RecordEnd);
53 ::memcpy(StableStorage, &RecordBuffer[0], RecordEnd);
55 CurrentSymbol.reset();
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
uint64_t getOffset() const
Error writeInteger(T Value)
Write the integer Value to the underlying stream in the specified endianness.
void setOffset(uint64_t Off)
Allocate memory in an ever growing pool, as if by bump-pointer.
LLVM_ATTRIBUTE_RETURNS_NONNULL void * Allocate(size_t Size, Align Alignment)
Allocate space at the specified alignment.
Lightweight error class with error context and mandatory checking.
static ErrorSuccess success()
Create a success value.
CVRecord is a fat pointer (base + size pair) to a symbol or type record.
Error visitSymbolEnd(CVSymbol &Record) override
Error visitSymbolBegin(CVSymbol &Record) override
Error visitSymbolBegin(CVSymbol &Record) override
SymbolSerializer(BumpPtrAllocator &Storage, CodeViewContainer Container)
Error visitSymbolEnd(CVSymbol &Record) override
This is an optimization pass for GlobalISel generic memory operations.