From 5a2e0ff6c55b2746edf76840521f84cdb12d61b1 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Thu, 16 Apr 2015 22:12:59 +0000 Subject: [PATCH] AsmPrinter: Simplify logic for debug info intrinsics' !dbg attachments These are required, so just assume they're there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235138 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp | 5 +---- lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 7 ++++--- lib/CodeGen/AsmPrinter/DwarfDebug.h | 5 +---- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp b/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp index af8827cec29..1e3c5d769f1 100644 --- a/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp +++ b/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp @@ -207,10 +207,7 @@ void llvm::calculateDbgValueHistory(const MachineFunction *MF, MDLocalVariable *RawVar = MI.getDebugVariable(); assert(RawVar->isValidLocationForIntrinsic(MI.getDebugLoc()) && "Expected inlined-at fields to agree"); - MDLocation *IA = nullptr; - if (MDLocation *Loc = MI.getDebugLoc()) - IA = Loc->getInlinedAt(); - InlinedVariable Var(RawVar, IA); + InlinedVariable Var(RawVar, MI.getDebugLoc()->getInlinedAt()); if (unsigned PrevReg = Result.getRegisterForVar(Var)) dropRegDescribedVar(RegVars, PrevReg, Var); diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 97c9855fe14..fb8fc6e7545 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -711,7 +711,10 @@ void DwarfDebug::collectVariableInfoFromMMITable( for (const auto &VI : MMI->getVariableDbgInfo()) { if (!VI.Var) continue; - InlinedVariable Var(VI.Var, VI.Loc ? VI.Loc->getInlinedAt() : nullptr); + assert(VI.Var->isValidLocationForIntrinsic(VI.Loc) && + "Expected inlined-at fields to agree"); + + InlinedVariable Var(VI.Var, VI.Loc->getInlinedAt()); Processed.insert(Var); LexicalScope *Scope = LScopes.findLexicalScope(VI.Loc); @@ -719,8 +722,6 @@ void DwarfDebug::collectVariableInfoFromMMITable( if (!Scope) continue; - assert(VI.Var->isValidLocationForIntrinsic(VI.Loc) && - "Expected inlined-at fields to agree"); DIExpression Expr = cast_or_null(VI.Expr); ensureAbstractVariableIsCreatedIfScoped(Var, Scope->getScopeNode()); auto RegVar = diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.h b/lib/CodeGen/AsmPrinter/DwarfDebug.h index 809e7bdde10..e067f41904c 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.h +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.h @@ -98,13 +98,10 @@ public: /// AbstractVar may be NULL. DbgVariable(const MachineInstr *DbgValue, DwarfDebug *DD) : Var(DbgValue->getDebugVariable()), - IA(DbgValue->getDebugLoc() ? DbgValue->getDebugLoc()->getInlinedAt() - : nullptr), + IA(DbgValue->getDebugLoc()->getInlinedAt()), Expr(1, DbgValue->getDebugExpression()), TheDIE(nullptr), DotDebugLocOffset(~0U), MInsn(DbgValue), DD(DD) { FrameIndex.push_back(~0); - if (MDLocation *Loc = DbgValue->getDebugLoc()) - IA = Loc->getInlinedAt(); } // Accessors. -- 2.34.1