15#ifndef LLVM_OBJECTYAML_CONTIGUOUSBLOBACCUMULATOR_H
16#define LLVM_OBJECTYAML_CONTIGUOUSBLOBACCUMULATOR_H
45 : InitialOffset(BaseOffset), MaxSize(
SizeLimit), OS(Buf) {}
54 return std::move(ReachedLimitErr);
88 if (checkLimit(
sizeof(
T)))
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
static cl::opt< unsigned > SizeLimit("eif-limit", cl::init(6), cl::Hidden, cl::desc("Size limit in Hexagon early if-conversion"))
ContiguousBlobAccumulator(uint64_t BaseOffset, uint64_t SizeLimit)
Lightweight error class with error context and mandatory checking.
static ErrorSuccess success()
Create a success value.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
This class implements an extremely fast bulk output stream that can only output to a stream.
A raw_ostream that writes to an SmallVector or SmallString.
Specialized YAMLIO scalar type for representing a binary blob.
LLVM_ABI uint64_t padToAlignment(unsigned Align)
LLVM_ABI unsigned writeSLEB128(int64_t Val)
LLVM_ABI void writeAsBinary(const BinaryRef &Bin, uint64_t N=UINT64_MAX)
void writeBlobToStream(raw_ostream &Out) const
void write(const char *Ptr, size_t Size)
uint64_t getOffset() const
void write(T Val, llvm::endianness E)
ContiguousBlobAccumulator(uint64_t BaseOffset, uint64_t SizeLimit)
void writeZeros(uint64_t Num)
LLVM_ABI unsigned writeULEB128(uint64_t Val)
void write(unsigned char C)
LLVM_ABI void updateDataAt(uint64_t Pos, void *Data, size_t Size)
raw_ostream * getRawOS(uint64_t Size)
@ C
The default llvm calling convention, compatible with C.
void write(void *memory, value_type value, endianness endian)
Write a value to memory with a particular endianness.
This is an optimization pass for GlobalISel generic memory operations.
This struct is a compact representation of a valid (non-zero power of two) alignment.