Index: llvm/trunk/lib/CodeGen/MachineInstr.cpp =================================================================== --- llvm/trunk/lib/CodeGen/MachineInstr.cpp +++ llvm/trunk/lib/CodeGen/MachineInstr.cpp @@ -1469,10 +1469,23 @@ return; bool HaveSemi = false; + // Print debug location information. + if (const DebugLoc &DL = getDebugLoc()) { + if (!HaveSemi) { + OS << ';'; + HaveSemi = true; + } + OS << ' '; + DL.print(OS); + } + + // Print extra comments for DEBUG_VALUE. if (isDebugValue() && getOperand(e - 2).isMetadata()) { - if (!HaveSemi) + if (!HaveSemi) { OS << ";"; + HaveSemi = true; + } auto *DV = cast(getOperand(e - 2).getMetadata()); OS << " line no:" << DV->getLine(); if (auto *InlinedAt = debugLoc->getInlinedAt()) { Index: llvm/trunk/unittests/CodeGen/MachineInstrTest.cpp =================================================================== --- llvm/trunk/unittests/CodeGen/MachineInstrTest.cpp +++ llvm/trunk/unittests/CodeGen/MachineInstrTest.cpp @@ -255,7 +255,11 @@ 0, nullptr, nullptr, &OpInfo, 0, nullptr}; LLVMContext Ctx; - DILocation *DIL = DILocation::get(Ctx, 1, 5, (Metadata *)nullptr, nullptr); + DIFile *DIF = DIFile::getDistinct(Ctx, "filename", ""); + DISubprogram *DIS = DISubprogram::getDistinct( + Ctx, nullptr, "", "", DIF, 0, nullptr, false, false, 0, nullptr, 0, 0, 0, + DINode::FlagZero, false, nullptr); + DILocation *DIL = DILocation::get(Ctx, 1, 5, DIS); DebugLoc DL(DIL); MachineInstr *MI = MF->CreateMachineInstr(MCID, DL); MI->addOperand(*MF, MachineOperand::CreateReg(0, /*isDef*/ true)); @@ -265,6 +269,8 @@ MI->print(OS); ASSERT_TRUE( StringRef(OS.str()).startswith("$noreg = UNKNOWN debug-location ")); + ASSERT_TRUE( + StringRef(OS.str()).endswith("filename:1:5")); } } // end namespace