Go to the documentation of this file.
9 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_DBIMODULEDESCRIPTORBUILDER_H
10 #define LLVM_DEBUGINFO_PDB_NATIVE_DBIMODULEDESCRIPTORBUILDER_H
24 class BinaryStreamWriter;
26 class DebugSubsection;
84 MergeSymsCallback = Callback;
134 uint32_t calculateC13DebugInfoSize()
const;
142 std::string ObjFileName;
143 std::vector<std::string> SourceFiles;
144 std::vector<SymbolListWrapper> Symbols;
146 void *MergeSymsCtx =
nullptr;
149 std::vector<StringTableFixup> StringTableFixups;
151 std::vector<codeview::DebugSubsectionRecordBuilder> C13Builders;
160 #endif // LLVM_DEBUGINFO_PDB_NATIVE_DBIMODULEDESCRIPTORBUILDER_H
This is an optimization pass for GlobalISel generic memory operations.
void addSymbolsInBulk(ArrayRef< uint8_t > BulkSymbols)
void addUnmergedSymbols(void *SymSrc, uint32_t SymLength)
Provides write only access to a subclass of WritableBinaryStream.
uint32_t calculateSerializedLength() const
Error commit(BinaryStreamWriter &ModiWriter)
Commit the DBI descriptor to the DBI stream.
@ SC
CHAIN = SC CHAIN, Imm128 - System call.
Error(*)(void *Ctx, void *Symbols, BinaryStreamWriter &Writer) MergeSymbolsCallback
void setFirstSectionContrib(const SectionContrib &SC)
void setObjFileName(StringRef Name)
ArrayRef< std::string > source_files() const
DbiModuleDescriptorBuilder & operator=(const DbiModuleDescriptorBuilder &)=delete
void addDebugSubsection(std::shared_ptr< codeview::DebugSubsection > Subsection)
Error commitSymbolStream(const msf::MSFLayout &MsfLayout, WritableBinaryStreamRef MsfBuffer)
Commit the accumulated symbols to the module symbol stream.
SymbolListWrapper(ArrayRef< uint8_t > Syms)
uint32_t getNextSymbolOffset() const
Return the offset within the module symbol stream of the next symbol record passed to addSymbol.
compiles ldr LCPI1_0 ldr ldr mov lsr tst moveq r1 ldr LCPI1_1 and r0 bx lr It would be better to do something like to fold the shift into the conditional move
DbiModuleDescriptorBuilder(StringRef ModuleName, uint32_t ModIndex, msf::MSFBuilder &Msf)
void addSymbol(codeview::CVSymbol Symbol)
StringRef getObjFileName() const
void setStringTableFixups(std::vector< StringTableFixup > &&Fixups)
uint32_t SymOffsetOfReference
StringRef - Represent a constant reference to a string, i.e.
CVRecord is a fat pointer (base + size pair) to a symbol or type record.
void setMergeSymbolsCallback(void *Ctx, MergeSymbolsCallback Callback)
uint16_t getStreamIndex() const
Represents a string table reference at some offset in the module symbol stream.
SymbolListWrapper(void *SymSrc, uint32_t Length)
StringRef getModuleName() const
ArrayRef< uint8_t > asArray() const
Lightweight error class with error context and mandatory checking.
unsigned getModuleIndex() const
ArrayRef< T > makeArrayRef(const T &OneElt)
Construct an ArrayRef from a single element.
Error finalizeMsfLayout()
void setPdbFilePathNI(uint32_t NI)
~DbiModuleDescriptorBuilder()