Go to the documentation of this file.
9 #ifndef LLVM_LIB_CODEGEN_ASMPRINTER_DWARFFILE_H
10 #define LLVM_LIB_CODEGEN_ASMPRINTER_DWARFFILE_H
29 class DwarfCompileUnit;
69 MCSymbol *StringOffsetsStartSym =
nullptr;
73 MCSymbol *RnglistsTableBaseSym =
nullptr;
79 std::map<unsigned, DbgVariable *>
Args;
124 void addUnit(std::unique_ptr<DwarfCompileUnit> U);
141 bool UseRelativeOffsets =
false);
158 return ScopeVariables;
166 return AbstractSPDies;
170 return AbstractEntities;
174 DITypeNodeToDieMap.
insert(std::make_pair(TypeMD, Die));
178 return DITypeNodeToDieMap.
lookup(TypeMD);
184 #endif // LLVM_LIB_CODEGEN_ASMPRINTER_DWARFFILE_H
This is an optimization pass for GlobalISel generic memory operations.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
SmallVector< RangeSpan, 2 > Ranges
ValueT lookup(const_arg_type_t< KeyT > Val) const
lookup - Return the entry for the specified key, or a default constructed value if no such entry exis...
DwarfFile(AsmPrinter *AP, StringRef Pref, BumpPtrAllocator &DA)
DenseMap< const MDNode *, DIE * > & getAbstractSPDies()
DIE * getDIE(const MDNode *TypeMD)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
LexicalScope - This class is used to track scope information.
bool addScopeVariable(LexicalScope *LS, DbgVariable *Var)
const SmallVectorImpl< std::unique_ptr< DwarfCompileUnit > > & getUnits()
A structured debug information entry.
void insertDIE(const MDNode *TypeMD, DIE *Die)
This class is used to track label information.
void setRnglistsTableBaseSym(MCSymbol *Sym)
unsigned computeSizeAndOffset(DIE &Die, unsigned Offset)
Compute the size and offset of a DIE given an incoming Offset.
void emitUnit(DwarfUnit *TheU, bool UseOffsets)
Emit the given unit to its section.
std::pair< uint32_t, RangeSpanList * > addRange(const DwarfCompileUnit &CU, SmallVector< RangeSpan, 2 > R)
void emitStrings(MCSection *StrSection, MCSection *OffsetSection=nullptr, bool UseRelativeOffsets=false)
Emit all of the strings to the section given.
DenseMap< LexicalScope *, LabelList > & getScopeLabels()
This class is used to track local variable information.
void setStringOffsetsStartSym(MCSymbol *Sym)
Allocate memory in an ever growing pool, as if by bump-pointer.
unsigned computeSizeAndOffsetsForUnit(DwarfUnit *TheU)
Compute the size and offset of all the DIEs in the given unit.
void addScopeLabel(LexicalScope *LS, DbgLabel *Label)
StringRef - Represent a constant reference to a string, i.e.
DenseMap< const DINode *, std::unique_ptr< DbgEntity > > & getAbstractEntities()
Instances of this class represent a uniqued identifier for a section in the current translation unit.
std::pair< iterator, bool > insert(const std::pair< KeyT, ValueT > &KV)
void addUnit(std::unique_ptr< DwarfCompileUnit > U)
Add a unit to the list of CUs.
DwarfStringPool & getStringPool()
Returns the string pool.
MCSymbol * getStringOffsetsStartSym() const
void computeSizeAndOffsets()
Compute the size and offset of all the DIEs.
Helps unique DIEAbbrev objects and assigns abbreviation numbers.
This class is intended to be used as a driving class for all asm writers.
void emitUnits(bool UseOffsets)
Emit all of the units to the section listed with the given abbreviation section.
DenseMap< LexicalScope *, ScopeVars > & getScopeVariables()
MCSymbol * getRnglistsTableBaseSym() const
const DwarfCompileUnit * CU
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This dwarf writer support class manages information associated with a source file.
constexpr char Args[]
Key for Kernel::Metadata::mArgs.
void emitAbbrevs(MCSection *)
Emit a set of abbreviations to the specific section.
const SmallVectorImpl< RangeSpanList > & getRangeLists() const
getRangeLists - Get the vector of range lists.