diff --git a/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp b/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp index c9bf1ecf907..450d1541384 100644 --- a/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp +++ b/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp @@ -144,6 +144,7 @@ void calculateDbgValueHistory(const MachineFunction *MF, continue; } + assert(MI.getNumOperands() > 1 && "Invalid DBG_VALUE instruction!"); const MDNode *Var = MI.getDebugVariable(); auto &History = Result[Var]; diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 967c7b1b596..dad44b84a15 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -1404,17 +1404,8 @@ void DwarfDebug::beginFunction(const MachineFunction *MF) { // Collect user variables, find the end of the prologue. for (const auto &MBB : *MF) { for (const auto &MI : MBB) { - if (MI.isDebugValue()) { - assert(MI.getNumOperands() > 1 && "Invalid machine instruction!"); - // Keep track of user variables in order of appearance. Create the - // empty history for each variable so that the order of keys in - // DbgValues is correct. Actual history will be populated in - // calculateDbgValueHistory() function. - const MDNode *Var = MI.getDebugVariable(); - DbgValues.insert( - std::make_pair(Var, SmallVector())); - } else if (!MI.getFlag(MachineInstr::FrameSetup) && - PrologEndLoc.isUnknown() && !MI.getDebugLoc().isUnknown()) { + if (!MI.isDebugValue() && !MI.getFlag(MachineInstr::FrameSetup) && + PrologEndLoc.isUnknown() && !MI.getDebugLoc().isUnknown()) { // First known non-DBG_VALUE and non-frame setup location marks // the beginning of the function body. PrologEndLoc = MI.getDebugLoc();