summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2009-05-01 08:40:06 +0000
committerBill Wendling <isanbard@gmail.com>2009-05-01 08:40:06 +0000
commit80b9abf8f4f37735574480bc2e1ea17d95f35051 (patch)
tree7a8b0ba9467f164f1fb0660af075fb4f2676e761 /llvm/lib
parent03968bd796158ac1e93a310993ce293d1af4f527 (diff)
downloadbcm5719-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.cpp39
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();
}
-
};
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud