9#ifndef LLVM_LIB_DWARFLINKER_PARALLEL_DWARFEMITTERIMPL_H
10#define LLVM_LIB_DWARFLINKER_PARALLEL_DWARFEMITTERIMPL_H
36template <
typename DataT>
class AccelTable;
39namespace dwarf_linker {
52 : OutFile(OutFile), OutFileType(OutFileType) {}
65 unsigned DwarfVersion);
99 template <
typename PatchTy>
106 std::unique_ptr<MCRegisterInfo> MRI;
107 std::unique_ptr<MCAsmInfo> MAI;
108 std::unique_ptr<MCObjectFileInfo> MOFI;
109 std::unique_ptr<MCContext> MC;
111 std::unique_ptr<MCInstrInfo> MII;
112 std::unique_ptr<MCSubtargetInfo> MSTI;
116 std::unique_ptr<TargetMachine> TM;
117 std::unique_ptr<AsmPrinter> Asm;
This file contains support for writing accelerator tables.
This class holds an abstract representation of an Accelerator Table, consisting of a sequence of buck...
A structured debug information entry.
Lightweight error class with error context and mandatory checking.
Generic interface to target specific assembler backends.
MCCodeEmitter - Generic instruction encoding interface.
This is an instance of a target assembly language printer that converts an MCInst to valid target ass...
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Streaming machine code generation interface.
void finish(SMLoc EndLoc=SMLoc())
Finish emission of machine code.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringRef - Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
OutputFileType
Type of output file.
This class is a simple list of T structures.
This class emits DWARF data to the output stream.
const Triple & getTargetTriple()
Returns triple of output stream.
void emitCompileUnitHeader(DwarfUnit &Unit)
Emit compile unit header.
Error init(Triple TheTriple, StringRef Swift5ReflectionSegmentName)
Initialize AsmPrinter data.
void emitAppleNames(AccelTable< AppleAccelTableStaticOffsetData > &Table)
Emits .apple_names section according to the specified Table.
uint64_t getDebugInfoSectionSize() const
Returns size of generated .debug_info section.
void emitAbbrevs(const SmallVector< std::unique_ptr< DIEAbbrev > > &Abbrevs, unsigned DwarfVersion)
Emit abbreviations.
DwarfEmitterImpl(DWARFLinker::OutputFileType OutFileType, raw_pwrite_stream &OutFile)
void emitAppleTypes(AccelTable< AppleAccelTableStaticTypeData > &Table)
Emits .apple_types section according to the specified Table.
void emitDIE(DIE &Die)
Emit DIE recursively.
void emitAppleNamespaces(AccelTable< AppleAccelTableStaticOffsetData > &Table)
Emits .apple_namespaces section according to the specified Table.
void emitDebugNames(DWARF5AccelTable &Table, DebugNamesUnitsOffsets &CUOffsets, CompUnitIDToIdx &UnitIDToIdxMap)
Emits .debug_names section according to the specified Table.
void emitAppleObjc(AccelTable< AppleAccelTableStaticOffsetData > &Table)
Emits .apple_objc section according to the specified Table.
void finish()
Dump the file to the disk.
Base class for all Dwarf units(Compile unit/Type table unit).
This class creates a DwarfStringPoolEntry for the corresponding StringEntry.
An abstract base class for streams implementations that also support a pwrite operation.
std::vector< std::variant< MCSymbol *, uint64_t > > DebugNamesUnitsOffsets
This is an optimization pass for GlobalISel generic memory operations.