diff options
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 16 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h | 11 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 16 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h | 6 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfFile.h | 1 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp | 18 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h | 18 | ||||
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp | 2 |
8 files changed, 45 insertions, 43 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index 0fd25eb1a53..3f22070acea 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -16,7 +16,7 @@ namespace llvm { -DwarfCompileUnit::DwarfCompileUnit(unsigned UID, DICompileUnit Node, +DwarfCompileUnit::DwarfCompileUnit(unsigned UID, const MDCompileUnit *Node, AsmPrinter *A, DwarfDebug *DW, DwarfFile *DWU) : DwarfUnit(UID, dwarf::DW_TAG_compile_unit, Node, A, DW, DWU), @@ -276,7 +276,7 @@ void DwarfCompileUnit::attachLowHighPC(DIE &D, const MCSymbol *Begin, // Find DIE for the given subprogram and attach appropriate DW_AT_low_pc // and DW_AT_high_pc attributes. If there are global variables in this // scope then create and insert DIEs for these variables. -DIE &DwarfCompileUnit::updateSubprogramScopeDIE(DISubprogram SP) { +DIE &DwarfCompileUnit::updateSubprogramScopeDIE(const MDSubprogram *SP) { DIE *SPDie = getOrCreateSubprogramDIE(SP, includeMinimalInlineScopes()); attachLowHighPC(*SPDie, Asm->getFunctionBegin(), Asm->getFunctionEnd()); @@ -562,7 +562,7 @@ void DwarfCompileUnit::constructSubprogramScopeDIE(LexicalScope *Scope) { assert(Scope && Scope->getScopeNode()); assert(!Scope->getInlinedAt()); assert(!Scope->isAbstractScope()); - DISubprogram Sub = cast<MDSubprogram>(Scope->getScopeNode()); + auto *Sub = cast<MDSubprogram>(Scope->getScopeNode()); DD->getProcessedSPNodes().insert(Sub); @@ -604,7 +604,7 @@ DwarfCompileUnit::constructAbstractSubprogramScopeDIE(LexicalScope *Scope) { if (AbsDef) return; - DISubprogram SP = cast<MDSubprogram>(Scope->getScopeNode()); + auto *SP = cast<MDSubprogram>(Scope->getScopeNode()); DIE *ContextDIE; @@ -658,7 +658,7 @@ DwarfCompileUnit::constructImportedEntityDIE(const DIImportedEntity &Module) { return IMDie; } -void DwarfCompileUnit::finishSubprogramDefinition(DISubprogram SP) { +void DwarfCompileUnit::finishSubprogramDefinition(const MDSubprogram *SP) { DIE *D = getDIE(SP); if (DIE *AbsSPDIE = DU->getAbstractSPDies().lookup(SP)) { if (D) @@ -675,7 +675,7 @@ void DwarfCompileUnit::finishSubprogramDefinition(DISubprogram SP) { applySubprogramAttributesToDefinition(SP, *D); } } -void DwarfCompileUnit::collectDeadVariables(DISubprogram SP) { +void DwarfCompileUnit::collectDeadVariables(const MDSubprogram *SP) { assert(SP && "CU's subprogram list contains a non-subprogram"); assert(SP->isDefinition() && "CU's subprogram list contains a subprogram declaration"); @@ -805,8 +805,8 @@ void DwarfCompileUnit::addExpr(DIELoc &Die, dwarf::Form Form, Die.addValue((dwarf::Attribute)0, Form, Value); } -void DwarfCompileUnit::applySubprogramAttributesToDefinition(DISubprogram SP, - DIE &SPDie) { +void DwarfCompileUnit::applySubprogramAttributesToDefinition( + const MDSubprogram *SP, DIE &SPDie) { auto *SPDecl = SP->getDeclaration(); auto *Context = resolve(SPDecl ? SPDecl->getScope() : SP->getScope()); applySubprogramAttributes(SP, SPDie, includeMinimalInlineScopes()); diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h index f197d226f9c..6ea43c3f615 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h @@ -66,7 +66,7 @@ class DwarfCompileUnit : public DwarfUnit { bool includeMinimalInlineScopes() const; public: - DwarfCompileUnit(unsigned UID, DICompileUnit Node, AsmPrinter *A, + DwarfCompileUnit(unsigned UID, const MDCompileUnit *Node, AsmPrinter *A, DwarfDebug *DW, DwarfFile *DWU); DwarfCompileUnit *getSkeleton() const { @@ -113,7 +113,7 @@ public: /// DW_AT_low_pc and DW_AT_high_pc attributes. If there are global /// variables in this scope then create and insert DIEs for these /// variables. - DIE &updateSubprogramScopeDIE(DISubprogram SP); + DIE &updateSubprogramScopeDIE(const MDSubprogram *SP); void constructScopeDIE(LexicalScope *Scope, SmallVectorImpl<std::unique_ptr<DIE>> &FinalChildren); @@ -158,9 +158,9 @@ public: std::unique_ptr<DIE> constructImportedEntityDIE(const DIImportedEntity &Module); - void finishSubprogramDefinition(DISubprogram SP); + void finishSubprogramDefinition(const MDSubprogram *SP); - void collectDeadVariables(DISubprogram SP); + void collectDeadVariables(const MDSubprogram *SP); /// Set the skeleton unit associated with this unit. void setSkeleton(DwarfCompileUnit &Skel) { Skeleton = &Skel; } @@ -215,7 +215,8 @@ public: /// Add a Dwarf expression attribute data and value. void addExpr(DIELoc &Die, dwarf::Form Form, const MCExpr *Expr); - void applySubprogramAttributesToDefinition(DISubprogram SP, DIE &SPDie); + void applySubprogramAttributesToDefinition(const MDSubprogram *SP, + DIE &SPDie); /// getRangeLists - Get the vector of range lists. const SmallVectorImpl<RangeSpanList> &getRangeLists() const { diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index b2a2220a58f..8226e1fe9aa 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -277,7 +277,7 @@ static StringRef getObjCMethodName(StringRef In) { // TODO: Determine whether or not we should add names for programs // that do not have a DW_AT_name or DW_AT_linkage_name field - this // is only slightly different than the lookup of non-standard ObjC names. -void DwarfDebug::addSubprogramNames(DISubprogram SP, DIE &Die) { +void DwarfDebug::addSubprogramNames(const MDSubprogram *SP, DIE &Die) { if (!SP->isDefinition()) return; addAccelName(SP->getName(), Die); @@ -363,7 +363,8 @@ void DwarfDebug::addGnuPubAttributes(DwarfUnit &U, DIE &D) const { // Create new DwarfCompileUnit for the given metadata node with tag // DW_TAG_compile_unit. -DwarfCompileUnit &DwarfDebug::constructDwarfCompileUnit(DICompileUnit DIUnit) { +DwarfCompileUnit & +DwarfDebug::constructDwarfCompileUnit(const MDCompileUnit *DIUnit) { StringRef FN = DIUnit->getFilename(); CompilationDir = DIUnit->getDirectory(); @@ -446,7 +447,7 @@ void DwarfDebug::beginModule() { SingleCU = CU_Nodes->getNumOperands() == 1; for (MDNode *N : CU_Nodes->operands()) { - DICompileUnit CUNode = cast<MDCompileUnit>(N); + auto *CUNode = cast<MDCompileUnit>(N); DwarfCompileUnit &CU = constructDwarfCompileUnit(CUNode); for (auto *IE : CUNode->getImportedEntities()) ScopesWithImportedEntities.push_back(std::make_pair(IE->getScope(), IE)); @@ -512,7 +513,7 @@ void DwarfDebug::collectDeadVariables() { if (NamedMDNode *CU_Nodes = M->getNamedMetadata("llvm.dbg.cu")) { for (MDNode *N : CU_Nodes->operands()) { - DICompileUnit TheCU = cast<MDCompileUnit>(N); + auto *TheCU = cast<MDCompileUnit>(N); // Construct subprogram DIE and add variables DIEs. DwarfCompileUnit *SPCU = static_cast<DwarfCompileUnit *>(CUMap.lookup(TheCU)); @@ -872,7 +873,8 @@ DwarfDebug::buildLocationList(SmallVectorImpl<DebugLocEntry> &DebugLoc, // Find variables for each lexical scope. -void DwarfDebug::collectVariableInfo(DwarfCompileUnit &TheCU, DISubprogram SP, +void DwarfDebug::collectVariableInfo(DwarfCompileUnit &TheCU, + const MDSubprogram *SP, DenseSet<InlinedVariable> &Processed) { // Grab the variable info that was squirreled away in the MMI side-table. collectVariableInfoFromMMITable(Processed); @@ -1185,7 +1187,7 @@ void DwarfDebug::endFunction(const MachineFunction *MF) { Asm->OutStreamer.getContext().setDwarfCompileUnitID(0); LexicalScope *FnScope = LScopes.getCurrentFunctionScope(); - DISubprogram SP = cast<MDSubprogram>(FnScope->getScopeNode()); + auto *SP = cast<MDSubprogram>(FnScope->getScopeNode()); DwarfCompileUnit &TheCU = *SPMap.lookup(SP); DenseSet<InlinedVariable> ProcessedVars; @@ -1215,7 +1217,7 @@ void DwarfDebug::endFunction(const MachineFunction *MF) { #endif // Construct abstract scopes. for (LexicalScope *AScope : LScopes.getAbstractScopesList()) { - DISubprogram SP = cast<MDSubprogram>(AScope->getScopeNode()); + auto *SP = cast<MDSubprogram>(AScope->getScopeNode()); // Collect info for variables that were optimized out. for (DIVariable DV : SP->getVariables()) { if (!ProcessedVars.insert(InlinedVariable(DV, nullptr)).second) diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h index ef971124dea..c33a07b0b42 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -451,7 +451,7 @@ class DwarfDebug : public AsmPrinterHandler { /// \brief Create new DwarfCompileUnit for the given metadata node with tag /// DW_TAG_compile_unit. - DwarfCompileUnit &constructDwarfCompileUnit(DICompileUnit DIUnit); + DwarfCompileUnit &constructDwarfCompileUnit(const MDCompileUnit *DIUnit); /// \brief Construct imported_module or imported_declaration DIE. void constructAndAddImportedEntityDIE(DwarfCompileUnit &TheCU, @@ -468,7 +468,7 @@ class DwarfDebug : public AsmPrinterHandler { void identifyScopeMarkers(); /// \brief Populate LexicalScope entries with variables' info. - void collectVariableInfo(DwarfCompileUnit &TheCU, DISubprogram SP, + void collectVariableInfo(DwarfCompileUnit &TheCU, const MDSubprogram *SP, DenseSet<InlinedVariable> &ProcessedVars); /// \brief Build the location list for all DBG_VALUEs in the @@ -581,7 +581,7 @@ public: /// or another context nested inside a subprogram. bool isSubprogramContext(const MDNode *Context); - void addSubprogramNames(DISubprogram SP, DIE &Die); + void addSubprogramNames(const MDSubprogram *SP, DIE &Die); AddressPool &getAddressPool() { return AddrPool; } diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h index c9de6665b01..19bb3471b08 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h @@ -28,7 +28,6 @@ class DwarfUnit; class DIEAbbrev; class MCSymbol; class DIE; -class DISubprogram; class LexicalScope; class StringRef; class DwarfDebug; diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp index 83fbb79979d..750b8525695 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp @@ -63,9 +63,9 @@ bool DIEDwarfExpression::isFrameRegister(unsigned MachineReg) { return MachineReg == TRI.getFrameRegister(*AP.MF); } - -DwarfUnit::DwarfUnit(unsigned UID, dwarf::Tag UnitTag, DICompileUnit Node, - AsmPrinter *A, DwarfDebug *DW, DwarfFile *DWU) +DwarfUnit::DwarfUnit(unsigned UID, dwarf::Tag UnitTag, + const MDCompileUnit *Node, AsmPrinter *A, DwarfDebug *DW, + DwarfFile *DWU) : UniqueID(UID), CUNode(Node), UnitDie(UnitTag), DebugInfoOffset(0), Asm(A), DD(DW), DU(DWU), IndexTyDie(nullptr), Section(nullptr) { assert(UnitTag == dwarf::DW_TAG_compile_unit || @@ -367,7 +367,7 @@ void DwarfUnit::addSourceLine(DIE &Die, DIGlobalVariable G) { addSourceLine(Die, G->getLine(), G->getFilename(), G->getDirectory()); } -void DwarfUnit::addSourceLine(DIE &Die, DISubprogram SP) { +void DwarfUnit::addSourceLine(DIE &Die, const MDSubprogram *SP) { assert(SP); addSourceLine(Die, SP->getLine(), SP->getFilename(), SP->getDirectory()); @@ -385,7 +385,7 @@ void DwarfUnit::addSourceLine(DIE &Die, DIObjCProperty Ty) { addSourceLine(Die, Ty->getLine(), Ty->getFilename(), Ty->getDirectory()); } -void DwarfUnit::addSourceLine(DIE &Die, DINameSpace NS) { +void DwarfUnit::addSourceLine(DIE &Die, const MDNamespace *NS) { addSourceLine(Die, NS->getLine(), NS->getFilename(), NS->getDirectory()); } @@ -1101,7 +1101,7 @@ DwarfUnit::constructTemplateValueParameterDIE(DIE &Buffer, } } -DIE *DwarfUnit::getOrCreateNameSpace(DINameSpace NS) { +DIE *DwarfUnit::getOrCreateNameSpace(const MDNamespace *NS) { // Construct the context before querying for the existence of the DIE in case // such construction creates the DIE. DIE *ContextDIE = getOrCreateContextDIE(NS->getScope()); @@ -1121,7 +1121,7 @@ DIE *DwarfUnit::getOrCreateNameSpace(DINameSpace NS) { return &NDie; } -DIE *DwarfUnit::getOrCreateSubprogramDIE(DISubprogram SP, bool Minimal) { +DIE *DwarfUnit::getOrCreateSubprogramDIE(const MDSubprogram *SP, bool Minimal) { // Construct the context before querying for the existence of the DIE in case // such construction creates the DIE (as is the case for member function // declarations). @@ -1152,7 +1152,7 @@ DIE *DwarfUnit::getOrCreateSubprogramDIE(DISubprogram SP, bool Minimal) { return &SPDie; } -bool DwarfUnit::applySubprogramDefinitionAttributes(DISubprogram SP, +bool DwarfUnit::applySubprogramDefinitionAttributes(const MDSubprogram *SP, DIE &SPDie) { DIE *DeclDie = nullptr; StringRef DeclLinkageName; @@ -1184,7 +1184,7 @@ bool DwarfUnit::applySubprogramDefinitionAttributes(DISubprogram SP, return true; } -void DwarfUnit::applySubprogramAttributes(DISubprogram SP, DIE &SPDie, +void DwarfUnit::applySubprogramAttributes(const MDSubprogram *SP, DIE &SPDie, bool Minimal) { if (!Minimal) if (applySubprogramDefinitionAttributes(SP, SPDie)) diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h index e8fd13e574a..a236a4a7a97 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h @@ -71,7 +71,7 @@ protected: unsigned UniqueID; /// MDNode for the compile unit. - DICompileUnit CUNode; + const MDCompileUnit *CUNode; /// Unit debug information entry. DIE UnitDie; @@ -117,7 +117,7 @@ protected: /// The section this unit will be emitted in. const MCSection *Section; - DwarfUnit(unsigned UID, dwarf::Tag, DICompileUnit CU, AsmPrinter *A, + DwarfUnit(unsigned UID, dwarf::Tag, const MDCompileUnit *CU, AsmPrinter *A, DwarfDebug *DW, DwarfFile *DWU); /// \brief Add a string attribute data and value. @@ -127,7 +127,7 @@ protected: void addIndexedString(DIE &Die, dwarf::Attribute Attribute, StringRef Str); - bool applySubprogramDefinitionAttributes(DISubprogram SP, DIE &SPDie); + bool applySubprogramDefinitionAttributes(const MDSubprogram *SP, DIE &SPDie); public: virtual ~DwarfUnit(); @@ -143,7 +143,7 @@ public: AsmPrinter* getAsmPrinter() const { return Asm; } unsigned getUniqueID() const { return UniqueID; } uint16_t getLanguage() const { return CUNode->getSourceLanguage(); } - DICompileUnit getCUNode() const { return CUNode; } + const MDCompileUnit *getCUNode() const { return CUNode; } DIE &getUnitDie() { return UnitDie; } unsigned getDebugInfoOffset() const { return DebugInfoOffset; } @@ -248,9 +248,9 @@ public: StringRef Directory); void addSourceLine(DIE &Die, DIVariable V); void addSourceLine(DIE &Die, DIGlobalVariable G); - void addSourceLine(DIE &Die, DISubprogram SP); + void addSourceLine(DIE &Die, const MDSubprogram *SP); void addSourceLine(DIE &Die, const MDType *Ty); - void addSourceLine(DIE &Die, DINameSpace NS); + void addSourceLine(DIE &Die, const MDNamespace *NS); void addSourceLine(DIE &Die, DIObjCProperty Ty); /// \brief Add constant value entry in variable DIE. @@ -297,10 +297,10 @@ public: void addType(DIE &Entity, const MDType *Ty, dwarf::Attribute Attribute = dwarf::DW_AT_type); - DIE *getOrCreateNameSpace(DINameSpace NS); - DIE *getOrCreateSubprogramDIE(DISubprogram SP, bool Minimal = false); + DIE *getOrCreateNameSpace(const MDNamespace *NS); + DIE *getOrCreateSubprogramDIE(const MDSubprogram *SP, bool Minimal = false); - void applySubprogramAttributes(DISubprogram SP, DIE &SPDie, + void applySubprogramAttributes(const MDSubprogram *SP, DIE &SPDie, bool Minimal = false); /// \brief Find existing DIE or create new DIE for the given type. diff --git a/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp b/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp index 276e7dfb2eb..a8f17c6e81f 100644 --- a/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp @@ -191,7 +191,7 @@ void WinCodeViewLineTables::emitDebugInfoForFunction(const Function *GV) { StringRef GVName = GV->getName(); StringRef FuncName; - if (DISubprogram SP = getDISubprogram(GV)) + if (auto *SP = getDISubprogram(GV)) FuncName = SP->getDisplayName(); // FIXME Clang currently sets DisplayName to "bar" for a C++ |