Skip to content

Commit 30668dd

Browse files
committed
MachineVerifier: Fix error reporting.
Do not use getVRegDef() to print "the definition" of a vreg. If there are multiple or none the function will fail. llvm-svn: 269239
1 parent 50f240a commit 30668dd

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

llvm/lib/CodeGen/MachineVerifier.cpp

+10-4
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ namespace {
221221
void report_context_liverange(const LiveRange &LR) const;
222222
void report_context_regunit(unsigned RegUnit) const;
223223
void report_context_lanemask(LaneBitmask LaneMask) const;
224+
void report_context_vreg(unsigned VReg) const;
224225
void report_context_vreg_regunit(unsigned VRegOrRegUnit) const;
225226

226227
void verifyInlineAsm(const MachineInstr *MI);
@@ -498,9 +499,13 @@ void MachineVerifier::report_context_regunit(unsigned RegUnit) const {
498499
errs() << "- regunit: " << PrintRegUnit(RegUnit, TRI) << '\n';
499500
}
500501

502+
void MachineVerifier::report_context_vreg(unsigned VReg) const {
503+
errs() << "- v. register: " << PrintReg(VReg, TRI) << '\n';
504+
}
505+
501506
void MachineVerifier::report_context_vreg_regunit(unsigned VRegOrUnit) const {
502507
if (TargetRegisterInfo::isVirtualRegister(VRegOrUnit)) {
503-
errs() << "- v. register: " << PrintReg(VRegOrUnit, TRI) << '\n';
508+
report_context_vreg(VRegOrUnit);
504509
} else {
505510
errs() << "- regunit: " << PrintRegUnit(VRegOrUnit, TRI) << '\n';
506511
}
@@ -1513,9 +1518,10 @@ void MachineVerifier::visitMachineFunctionAfter() {
15131518
BBInfo &MInfo = MBBInfoMap[&MF->front()];
15141519
for (RegSet::iterator
15151520
I = MInfo.vregsRequired.begin(), E = MInfo.vregsRequired.end(); I != E;
1516-
++I)
1517-
report("Virtual register def doesn't dominate all uses.",
1518-
MRI->getVRegDef(*I));
1521+
++I) {
1522+
report("Virtual register defs don't dominate all uses.", MF);
1523+
report_context_vreg(*I);
1524+
}
15191525
}
15201526

15211527
if (LiveVars)

0 commit comments

Comments
 (0)