From d5a6381195c392d41bf8084213f8fe6b308a00b6 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Fri, 1 May 2009 08:40:06 +0000 Subject: [PATCH] Simplify more code and add timer stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70539 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DwarfWriter.cpp | 39 +++++++++++++++++++++----- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp index 7afb7596106..cb24d7d7007 100644 --- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp @@ -3535,6 +3535,9 @@ public: if (!TAI->doesDwarfUsesInlineInfoSection()) return; + if (TimePassesIsEnabled) + DebugTimer->startTimer(); + std::string Dir, Fn; unsigned Src = GetOrCreateSourceID(CU.getDirectory(Dir), CU.getFilename(Fn)); @@ -3557,6 +3560,9 @@ public: InlineInfo[GV].push_back(LabelID); else I->second.push_back(LabelID); + + if (TimePassesIsEnabled) + DebugTimer->stopTimer(); } /// RecordInlinedFnEnd - Indicate the end of inlined subroutine. @@ -3564,11 +3570,18 @@ public: if (!TAI->doesDwarfUsesInlineInfoSection()) return 0; + if (TimePassesIsEnabled) + DebugTimer->startTimer(); + GlobalVariable *GV = SP.getGV(); DenseMap >::iterator I = DbgInlinedScopeMap.find(GV); - if (I == DbgInlinedScopeMap.end()) + if (I == DbgInlinedScopeMap.end()) { + if (TimePassesIsEnabled) + DebugTimer->stopTimer(); + return 0; + } SmallVector &Scopes = I->second; assert(!Scopes.empty() && "We should have at least one debug scope!"); @@ -3576,6 +3589,10 @@ public: unsigned ID = MMI->NextLabelID(); MMI->RecordUsedDbgLabel(ID); Scope->setEndLabelID(ID); + + if (TimePassesIsEnabled) + DebugTimer->stopTimer(); + return ID; } @@ -3584,18 +3601,26 @@ public: /// Record scopes for only inlined subroutine variables. Other /// variables' scopes are determined during RecordVariable(). void RecordVariableScope(DIVariable &DV, const MachineInstr *DeclareMI) { + if (TimePassesIsEnabled) + DebugTimer->startTimer(); + DISubprogram SP(DV.getContext().getGV()); - if (SP.isNull()) + + if (SP.isNull()) { + if (TimePassesIsEnabled) + DebugTimer->stopTimer(); + return; + } + DenseMap >::iterator I = DbgInlinedScopeMap.find(SP.getGV()); - if (I == DbgInlinedScopeMap.end()) - return; + if (I != DbgInlinedScopeMap.end()) + InlinedVariableScopes[DeclareMI] = I->second.back(); - SmallVector &Scopes = I->second; - InlinedVariableScopes[DeclareMI] = Scopes.back(); + if (TimePassesIsEnabled) + DebugTimer->stopTimer(); } - }; //===----------------------------------------------------------------------===// -- 2.34.1