diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-09 01:51:43 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-09 01:51:43 +0000 |
commit | a34ec2290fa441d312ac33a61e6ec6029259bdef (patch) | |
tree | 94840e08c17e355c5c7dd01f15e31e5b5efa570e /lib/CodeGen/AsmPrinter/DwarfDebug.cpp | |
parent | 23071ce80b86accb8a0870da7925531cb7063d53 (diff) |
strength reduce MMI::MappedLabel to MMI::isLabelDeleted,
and add a FIXME about how we are eventually going to zap this
lookup table once mc world domination is complete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98031 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 3c3228140a..1b17a9964f 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -1362,9 +1362,14 @@ DIE *DwarfDebug::updateSubprogramScopeDIE(MDNode *SPNode) { /// constructLexicalScope - Construct new DW_TAG_lexical_block /// for this scope and attach DW_AT_low_pc/DW_AT_high_pc labels. DIE *DwarfDebug::constructLexicalScopeDIE(DbgScope *Scope) { - unsigned StartID = MMI->MappedLabel(Scope->getStartLabelID()); - unsigned EndID = MMI->MappedLabel(Scope->getEndLabelID()); + unsigned StartID = Scope->getStartLabelID(); + unsigned EndID = Scope->getEndLabelID(); + assert(!MMI->isLabelDeleted(StartID) && + "Invalid starting label for an inlined scope!"); + assert(!MMI->isLabelDeleted(EndID) && + "Invalid end label for an inlined scope!"); + // Ignore empty scopes. if (StartID == EndID && StartID != 0) return NULL; @@ -1387,12 +1392,14 @@ DIE *DwarfDebug::constructLexicalScopeDIE(DbgScope *Scope) { /// a function. Construct DIE to represent this concrete inlined copy /// of the function. DIE *DwarfDebug::constructInlinedScopeDIE(DbgScope *Scope) { - unsigned StartID = MMI->MappedLabel(Scope->getStartLabelID()); - unsigned EndID = MMI->MappedLabel(Scope->getEndLabelID()); - assert (StartID && "Invalid starting label for an inlined scope!"); - assert (EndID && "Invalid end label for an inlined scope!"); + unsigned StartID = Scope->getStartLabelID(); + unsigned EndID = Scope->getEndLabelID(); + assert(!MMI->isLabelDeleted(StartID) && + "Invalid starting label for an inlined scope!"); + assert(!MMI->isLabelDeleted(EndID) && + "Invalid end label for an inlined scope!"); // Ignore empty scopes. - if (StartID == EndID && StartID != 0) + if (StartID == EndID) return NULL; if (!Scope->getScopeNode()) return NULL; @@ -2589,8 +2596,8 @@ void DwarfDebug::emitDebugLines() { // Construct rows of the address, source, line, column matrix. for (unsigned i = 0, N = LineInfos.size(); i < N; ++i) { const SrcLineInfo &LineInfo = LineInfos[i]; - unsigned LabelID = MMI->MappedLabel(LineInfo.getLabelID()); - if (!LabelID) continue; + unsigned LabelID = LineInfo.getLabelID(); + if (MMI->isLabelDeleted(LabelID)) continue; if (LineInfo.getLine() == 0) continue; |