aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/MachineVerifier.cpp
diff options
context:
space:
mode:
authorCameron Zwarich <zwarich@apple.com>2010-12-28 23:45:38 +0000
committerCameron Zwarich <zwarich@apple.com>2010-12-28 23:45:38 +0000
commitcb584d08c0734d64f95b0f762aa31ea8ce3de2d9 (patch)
tree7a02aba134e740c79a8cbd3c2254c78a18d883cd /lib/CodeGen/MachineVerifier.cpp
parent3b78cdc57ae25ff021fd67171a7c82d533477a19 (diff)
Simplify some code in MachineVerifier that was doing the correct thing, but not
in the most obvious way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122610 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/MachineVerifier.cpp')
-rw-r--r--lib/CodeGen/MachineVerifier.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/lib/CodeGen/MachineVerifier.cpp b/lib/CodeGen/MachineVerifier.cpp
index 0c29969003..53e04cea2b 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#"