26 : Kind(Kind), Data(Data) {}
52 std::shared_ptr<DebugSubsection> Subsection)
53 : Subsection(
std::
move(Subsection)) {}
57 : Contents(Contents) {}
60 uint32_t DataSize = Subsection ? Subsection->calculateSerializedSize()
70 "Debug Subsection not properly aligned");
73 Header.Kind =
uint32_t(Subsection ? Subsection->kind() : Contents.
kind());
76 uint32_t DataSize = Subsection ? Subsection->calculateSerializedSize()
83 if (
auto EC = Subsection->commit(Writer))
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Analysis containing CSE Info
Provides read only access to a subclass of BinaryStream.
LLVM_ABI Error readStreamRef(BinaryStreamRef &Ref)
Read the entire remainder of the underlying stream into Ref.
Error readObject(const T *&Dest)
Get a pointer to an object of type T from the underlying stream, as if by memcpy, and store the resul...
uint64_t getLength() const
BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.
Provides write only access to a subclass of WritableBinaryStream.
uint64_t getOffset() const
LLVM_ABI Error writeStreamRef(BinaryStreamRef Ref)
Efficiently reads all data from Ref, and writes it to this stream.
Error writeObject(const T &Obj)
Writes the object Obj to the underlying stream, as if by using memcpy.
LLVM_ABI Error padToAlignment(uint32_t Align)
Lightweight error class with error context and mandatory checking.
static ErrorSuccess success()
Create a success value.
LLVM_ABI Error commit(BinaryStreamWriter &Writer, CodeViewContainer Container) const
LLVM_ABI uint32_t calculateSerializedLength() const
LLVM_ABI DebugSubsectionRecordBuilder(std::shared_ptr< DebugSubsection > Subsection)
LLVM_ABI BinaryStreamRef getRecordData() const
LLVM_ABI DebugSubsectionKind kind() const
static LLVM_ABI Error initialize(BinaryStreamRef Stream, DebugSubsectionRecord &Info)
LLVM_ABI DebugSubsectionRecord()
LLVM_ABI uint32_t getRecordLength() const
uint32_t alignOf(CodeViewContainer Container)
This is an optimization pass for GlobalISel generic memory operations.
uint64_t alignTo(uint64_t Size, Align A)
Returns a multiple of A needed to store Size bytes.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.