summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmed Bougacha <ahmed.bougacha@gmail.com>2017-02-24 00:34:44 +0000
committerAhmed Bougacha <ahmed.bougacha@gmail.com>2017-02-24 00:34:44 +0000
commit7c88a4e12b9652c8fbea593d092bf06d5114aaf4 (patch)
tree53450a80dbe196ff3084e995a310ec61e2a752c1
parent8f9e99bcb6558846b85202029c137d6d72350530 (diff)
downloadbcm5719-llvm-7c88a4e12b9652c8fbea593d092bf06d5114aaf4.tar.gz
bcm5719-llvm-7c88a4e12b9652c8fbea593d092bf06d5114aaf4.zip
[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. llvm-svn: 296058
-rw-r--r--llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp5
-rw-r--r--llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp3
2 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 2df3810afae..0602e480383 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/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/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp b/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
index 70159d61369..0f7a254075a 100644
--- a/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
+++ b/llvm/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;
OpenPOWER on IntegriCloud