/// the need to search for it in applyStmtList.
unsigned stmtListIndex;
+ /// Skeleton unit associated with this unit.
+ DwarfUnit *Skeleton;
+
/// \brief Construct a DIE for the given DbgVariable without initializing the
/// DbgVariable's DIE reference.
std::unique_ptr<DIE> constructVariableDIEImpl(const DbgVariable &DV,
DwarfCompileUnit(unsigned UID, DICompileUnit Node, AsmPrinter *A,
DwarfDebug *DW, DwarfFile *DWU);
+ DwarfCompileUnit *getSkeleton() const {
+ return static_cast<DwarfCompileUnit *>(Skeleton);
+ }
+
void initStmtList(MCSymbol *DwarfLineSectionSym);
/// Apply the DW_AT_stmt_list from this compile unit to the specified DIE.
constructImportedEntityDIE(const DIImportedEntity &Module);
void finishSubprogramDefinition(DISubprogram SP);
+
+ void collectDeadVariables(DISubprogram SP);
+
+ /// If there's a skeleton then return the begin label for the skeleton unit,
+ /// otherwise return the local label for this unit.
+ MCSymbol *getLocalLabelBegin() const {
+ if (Skeleton)
+ return Skeleton->getLabelBegin();
+ return getLabelBegin();
+ }
+
+ /// If there's a skeleton then return the section symbol for the skeleton
+ /// unit, otherwise return the section symbol for this unit.
+ MCSymbol *getLocalSectionSym() const {
+ if (Skeleton)
+ return Skeleton->getSectionSym();
+ return getSectionSym();
+ }
+
+ /// Set the skeleton unit associated with this unit.
+ void setSkeleton(DwarfUnit &Skel) { Skeleton = &Skel; }
};
} // end llvm namespace