Simplify some code in MachineVerifier that was doing the correct thing, but not
authorCameron Zwarich <zwarich@apple.com>
Tue, 28 Dec 2010 23:45:38 +0000 (23:45 +0000)
committerCameron Zwarich <zwarich@apple.com>
Tue, 28 Dec 2010 23:45:38 +0000 (23:45 +0000)
in the most obvious way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122610 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineVerifier.cpp

index 0c29969003903db1270d4d2dc079d4a3a50b1a28..53e04cea2b702f8e370fb06f8dcdd2aef4ffc818 100644 (file)
@@ -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#"