9#ifndef LLVM_LIB_CODEGEN_ASMPRINTER_DWARFFILE_H
10#define LLVM_LIB_CODEGEN_ASMPRINTER_DWARFFILE_H
76 MCSymbol *StringOffsetsStartSym =
nullptr;
80 MCSymbol *RnglistsTableBaseSym =
nullptr;
86 std::map<unsigned, DbgVariable *> Args;
134 void addUnit(std::unique_ptr<DwarfCompileUnit> U);
151 bool UseRelativeOffsets =
false);
167 return ScopeVariables;
175 return AbstractLocalScopeDIEs;
179 return AbstractEntities;
183 return FinalizedAbstractSubprograms;
187 DITypeNodeToDieMap.insert(std::make_pair(TypeMD, Die));
191 return DITypeNodeToDieMap.lookup(TypeMD);
This file defines the BumpPtrAllocator interface.
This file defines the DenseMap class.
This file defines the SmallPtrSet class.
This file defines the SmallVector class.
This class is intended to be used as a driving class for all asm writers.
Helps unique DIEAbbrev objects and assigns abbreviation numbers.
A structured debug information entry.
Tagged DWARF-like metadata node.
Subprogram description. Uses SubclassData1.
This class is defined as the common parent of DbgVariable and DbgLabel such that it could levarage po...
This class is used to track label information.
This class is used to track local variable information.
unsigned computeSizeAndOffset(DIE &Die, unsigned Offset)
Compute the size and offset of a DIE given an incoming Offset.
void addScopeLabel(LexicalScope *LS, DbgLabel *Label)
void addUnit(std::unique_ptr< DwarfCompileUnit > U)
Add a unit to the list of CUs.
void computeSizeAndOffsets()
Compute the size and offset of all the DIEs.
void setRnglistsTableBaseSym(MCSymbol *Sym)
DenseMap< LexicalScope *, ScopeVars > & getScopeVariables()
DenseMap< const DINode *, std::unique_ptr< DbgEntity > > & getAbstractEntities()
unsigned computeSizeAndOffsetsForUnit(DwarfUnit *TheU)
Compute the size and offset of all the DIEs in the given unit.
void emitUnits(bool UseOffsets)
Emit all of the units to the section listed with the given abbreviation section.
void emitUnit(DwarfUnit *TheU, bool UseOffsets)
Emit the given unit to its section.
const SmallVectorImpl< RangeSpanList > & getRangeLists() const
getRangeLists - Get the vector of range lists.
MCSymbol * getStringOffsetsStartSym() const
MCSymbol * getRnglistsTableBaseSym() const
DwarfStringPool & getStringPool()
Returns the string pool.
void emitAbbrevs(MCSection *)
Emit a set of abbreviations to the specific section.
DwarfFile(AsmPrinter *AP, StringRef Pref, BumpPtrAllocator &DA)
void emitStrings(MCSection *StrSection, MCSection *OffsetSection=nullptr, bool UseRelativeOffsets=false)
Emit all of the strings to the section given.
DenseMap< LexicalScope *, LabelList > & getScopeLabels()
void addScopeVariable(LexicalScope *LS, DbgVariable *Var)
std::pair< uint32_t, RangeSpanList * > addRange(const DwarfCompileUnit &CU, SmallVector< RangeSpan, 2 > R)
DenseMap< const DILocalScope *, DIE * > & getAbstractScopeDIEs()
void setStringOffsetsStartSym(MCSymbol *Sym)
const SmallVectorImpl< std::unique_ptr< DwarfCompileUnit > > & getUnits()
void insertDIE(const MDNode *TypeMD, DIE *Die)
DIE * getDIE(const MDNode *TypeMD)
auto & getFinalizedAbstractSubprograms()
This dwarf writer support class manages information associated with a source file.
This class is used to track scope information.
Instances of this class represent a uniqued identifier for a section in the current translation unit.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
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.
This is an optimization pass for GlobalISel generic memory operations.
BumpPtrAllocatorImpl BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
SmallVector< RangeSpan, 2 > Ranges
bool operator==(const RangeSpan &Other) const