[llvm-commits] [llvm] r70539 - /llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp

Bill Wendling isanbard at gmail.com
Fri May 1 01:40:09 PDT 2009


Author: void
Date: Fri May  1 03:40:06 2009
New Revision: 70539

URL: http://llvm.org/viewvc/llvm-project?rev=70539&view=rev
Log:
Simplify more code and add timer stuff.

Modified:
    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp?rev=70539&r1=70538&r2=70539&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp Fri May  1 03:40:06 2009
@@ -3535,6 +3535,9 @@
     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 @@
       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 @@
     if (!TAI->doesDwarfUsesInlineInfoSection())
       return 0;
 
+    if (TimePassesIsEnabled)
+      DebugTimer->startTimer();
+
     GlobalVariable *GV = SP.getGV();
     DenseMap<GlobalVariable *, SmallVector<DbgScope *, 2> >::iterator
       I = DbgInlinedScopeMap.find(GV);
-    if (I == DbgInlinedScopeMap.end()) 
+    if (I == DbgInlinedScopeMap.end()) {
+      if (TimePassesIsEnabled)
+        DebugTimer->stopTimer();
+
       return 0;
+    }
 
     SmallVector<DbgScope *, 2> &Scopes = I->second;
     assert(!Scopes.empty() && "We should have at least one debug scope!");
@@ -3576,6 +3589,10 @@
     unsigned ID = MMI->NextLabelID();
     MMI->RecordUsedDbgLabel(ID);
     Scope->setEndLabelID(ID);
+
+    if (TimePassesIsEnabled)
+      DebugTimer->stopTimer();
+
     return ID;
   }
 
@@ -3584,18 +3601,26 @@
   /// 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<GlobalVariable *, SmallVector<DbgScope *, 2> >::iterator
       I = DbgInlinedScopeMap.find(SP.getGV());
-    if (I == DbgInlinedScopeMap.end())
-      return;
+    if (I != DbgInlinedScopeMap.end())
+      InlinedVariableScopes[DeclareMI] = I->second.back();
 
-    SmallVector<DbgScope *, 2> &Scopes = I->second;
-    InlinedVariableScopes[DeclareMI] = Scopes.back();
+    if (TimePassesIsEnabled)
+      DebugTimer->stopTimer();
   }
-
 };
 
 //===----------------------------------------------------------------------===//





More information about the llvm-commits mailing list