From abdb8cba99613d19b5a1ad3871cd4cb14c55b5ab Mon Sep 17 00:00:00 2001 From: Ahmed Bougacha Date: Fri, 24 Feb 2017 00:34:44 +0000 Subject: [PATCH] [GlobalISel] Use the DISubprogram for translation failure remarks. Justin added support for DISubprogram locs in r295531 and r296052. Use that instead of no-loc for constants and arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296058 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/GlobalISel/IRTranslator.cpp | 5 +++-- lib/CodeGen/GlobalISel/InstructionSelect.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/CodeGen/GlobalISel/IRTranslator.cpp b/lib/CodeGen/GlobalISel/IRTranslator.cpp index 2df3810afae..0602e480383 100644 --- a/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -89,7 +89,7 @@ unsigned IRTranslator::getOrCreateVReg(const Value &Val) { bool Success = translate(*CV, VReg); if (!Success) { OptimizationRemarkMissed R("gisel-irtranslator", "GISelFailure", - DebugLoc(), + MF->getFunction()->getSubprogram(), &MF->getFunction()->getEntryBlock()); R << "unable to translate constant: " << ore::NV("Type", Val.getType()); reportTranslationError(*MF, *TPC, *ORE, R); @@ -1049,7 +1049,8 @@ bool IRTranslator::runOnMachineFunction(MachineFunction &CurMF) { for (const Argument &Arg: F.args()) VRegArgs.push_back(getOrCreateVReg(Arg)); if (!CLI->lowerFormalArguments(EntryBuilder, F, VRegArgs)) { - OptimizationRemarkMissed R("gisel-irtranslator", "GISelFailure", DebugLoc(), + OptimizationRemarkMissed R("gisel-irtranslator", "GISelFailure", + MF->getFunction()->getSubprogram(), &MF->getFunction()->getEntryBlock()); R << "unable to lower arguments: " << ore::NV("Prototype", F.getType()); reportTranslationError(*MF, *TPC, *ORE, R); diff --git a/lib/CodeGen/GlobalISel/InstructionSelect.cpp b/lib/CodeGen/GlobalISel/InstructionSelect.cpp index 70159d61369..0f7a254075a 100644 --- a/lib/CodeGen/GlobalISel/InstructionSelect.cpp +++ b/lib/CodeGen/GlobalISel/InstructionSelect.cpp @@ -166,7 +166,8 @@ bool InstructionSelect::runOnMachineFunction(MachineFunction &MF) { if (MF.size() != NumBlocks) { MachineOptimizationRemarkMissed R("gisel-select", "GISelFailure", - DebugLoc(), /*MBB=*/nullptr); + MF.getFunction()->getSubprogram(), + /*MBB=*/nullptr); R << "inserting blocks is not supported yet"; reportGISelFailure(MF, TPC, MORE, R); return false; -- 2.40.0