Early clobber operands are allowed to be defined at use indices. This fixes one
authorCameron Zwarich <zwarich@apple.com>
Sun, 19 Dec 2010 23:50:53 +0000 (23:50 +0000)
committerCameron Zwarich <zwarich@apple.com>
Sun, 19 Dec 2010 23:50:53 +0000 (23:50 +0000)
half of PR8813.

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

lib/CodeGen/MachineVerifier.cpp

index 2b1c7263b7b12eeba6f2426d82c3f2991aa8848a..f7713fd1eec17c0b774e749bdd592b441d3cad46 100644 (file)
@@ -690,7 +690,7 @@ MachineVerifier::visitMachineOperand(const MachineOperand *MO, unsigned MONum) {
           const LiveInterval &LI = LiveInts->getInterval(Reg);
           if (const VNInfo *VNI = LI.getVNInfoAt(DefIdx)) {
             assert(VNI && "NULL valno is not allowed");
-            if (VNI->def != DefIdx) {
+            if (VNI->def != DefIdx && !MO->isEarlyClobber()) {
               report("Inconsistent valno->def", MO, MONum);
               *OS << "Valno " << VNI->id << " is not defined at "
                   << DefIdx << " in " << LI << '\n';