mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Add knowledge of phi-def and phi-kill valnos to MachineVerifier's predecessor
valno verification. The "Different value live out of predecessor" check is incorrect in the case of phi-def valnos, so just skip that check for phi-def valnos and instead check that all of the valnos for predecessors have phi-kill. Fixes PR8863. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122581 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1146,7 +1146,23 @@ void MachineVerifier::verifyLiveIntervals() {
|
|||||||
*OS << "Valno #" << VNI->id << " live into BB#" << MFI->getNumber()
|
*OS << "Valno #" << VNI->id << " live into BB#" << MFI->getNumber()
|
||||||
<< '@' << LiveInts->getMBBStartIdx(MFI) << ", not live at "
|
<< '@' << LiveInts->getMBBStartIdx(MFI) << ", not live at "
|
||||||
<< PEnd << " in " << LI << '\n';
|
<< PEnd << " in " << LI << '\n';
|
||||||
} else if (PVNI != VNI) {
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (VNI->isPHIDef() && VNI->def == LiveInts->getMBBStartIdx(MFI)) {
|
||||||
|
if (!PVNI->hasPHIKill()) {
|
||||||
|
report("Value live out of predecessor doesn't have PHIKill", MF);
|
||||||
|
*OS << "Valno #" << PVNI->id << " live out of BB#"
|
||||||
|
<< (*PI)->getNumber() << '@' << PEnd
|
||||||
|
<< " doesn't have PHIKill, but Valno #" << VNI->id
|
||||||
|
<< " is PHIDef and defined at the beginning of BB#"
|
||||||
|
<< MFI->getNumber() << '@' << LiveInts->getMBBStartIdx(MFI)
|
||||||
|
<< " in " << LI << '\n';
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PVNI != VNI) {
|
||||||
report("Different value live out of predecessor", *PI);
|
report("Different value live out of predecessor", *PI);
|
||||||
*OS << "Valno #" << PVNI->id << " live out of BB#"
|
*OS << "Valno #" << PVNI->id << " live out of BB#"
|
||||||
<< (*PI)->getNumber() << '@' << PEnd
|
<< (*PI)->getNumber() << '@' << PEnd
|
||||||
|
|||||||
Reference in New Issue
Block a user