diff options
| author | Bill Wendling <isanbard@gmail.com> | 2009-05-01 08:40:06 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2009-05-01 08:40:06 +0000 |
| commit | 80b9abf8f4f37735574480bc2e1ea17d95f35051 (patch) | |
| tree | 7a8b0ba9467f164f1fb0660af075fb4f2676e761 /llvm/lib | |
| parent | 03968bd796158ac1e93a310993ce293d1af4f527 (diff) | |
| download | bcm5719-llvm-80b9abf8f4f37735574480bc2e1ea17d95f35051.tar.gz bcm5719-llvm-80b9abf8f4f37735574480bc2e1ea17d95f35051.zip | |
Simplify more code and add timer stuff.
llvm-svn: 70539
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp index 7afb7596106..cb24d7d7007 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfWriter.cpp +++ b/llvm/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<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 @@ 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<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(); } - }; //===----------------------------------------------------------------------===// |

