From 0fa638e27cf0122b6a4891b2db502ce9590c1600 Mon Sep 17 00:00:00 2001 From: Cameron Zwarich Date: Tue, 28 Dec 2010 23:45:38 +0000 Subject: [PATCH] Simplify some code in MachineVerifier that was doing the correct thing, but not in the most obvious way. llvm-svn: 122610 --- lib/CodeGen/MachineVerifier.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/CodeGen/MachineVerifier.cpp b/lib/CodeGen/MachineVerifier.cpp index 0c299690039..53e04cea2b7 100644 --- a/lib/CodeGen/MachineVerifier.cpp +++ b/lib/CodeGen/MachineVerifier.cpp @@ -1118,8 +1118,8 @@ void MachineVerifier::verifyLiveIntervals() { // Now check all the basic blocks in this live segment. MachineFunction::const_iterator MFI = MBB; - // Is LI live-in to MBB and not a PHIDef? - if (I->start == VNI->def) { + // Is this live range the beginning of a non-PHIDef VN? + if (I->start == VNI->def && !VNI->isPHIDef()) { // Not live-in to any blocks. if (MBB == EndMBB) continue; @@ -1141,16 +1141,9 @@ void MachineVerifier::verifyLiveIntervals() { PE = MFI->pred_end(); PI != PE; ++PI) { SlotIndex PEnd = LiveInts->getMBBEndIdx(*PI).getPrevSlot(); const VNInfo *PVNI = LI.getVNInfoAt(PEnd); - if (!PVNI) { - report("Register not marked live out of predecessor", *PI); - *OS << "Valno #" << VNI->id << " live into BB#" << MFI->getNumber() - << '@' << LiveInts->getMBBStartIdx(MFI) << ", not live at " - << PEnd << " in " << LI << '\n'; - continue; - } if (VNI->isPHIDef() && VNI->def == LiveInts->getMBBStartIdx(MFI)) { - if (!PVNI->hasPHIKill()) { + if (PVNI && !PVNI->hasPHIKill()) { report("Value live out of predecessor doesn't have PHIKill", MF); *OS << "Valno #" << PVNI->id << " live out of BB#" << (*PI)->getNumber() << '@' << PEnd @@ -1162,6 +1155,14 @@ void MachineVerifier::verifyLiveIntervals() { continue; } + if (!PVNI) { + report("Register not marked live out of predecessor", *PI); + *OS << "Valno #" << VNI->id << " live into BB#" << MFI->getNumber() + << '@' << LiveInts->getMBBStartIdx(MFI) << ", not live at " + << PEnd << " in " << LI << '\n'; + continue; + } + if (PVNI != VNI) { report("Different value live out of predecessor", *PI); *OS << "Valno #" << PVNI->id << " live out of BB#"