Optional def can be either a def or a use (of reg0).
authorEvan Cheng <evan.cheng@apple.com>
Tue, 29 May 2012 19:40:44 +0000 (19:40 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 29 May 2012 19:40:44 +0000 (19:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157640 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineVerifier.cpp

index a2027509783cf641b1a9c210eb6747a7645da6d1..20dbe11bf9ede0679435a05ddbbc2c66dfd62bbf 100644 (file)
@@ -634,7 +634,7 @@ MachineVerifier::visitMachineOperand(const MachineOperand *MO, unsigned MONum) {
   if (MONum < MCID.getNumDefs()) {
     if (!MO->isReg())
       report("Explicit definition must be a register", MO, MONum);
-    else if (!MO->isDef())
+    else if (!MO->isDef() && !MCOI.isOptionalDef())
       report("Explicit definition marked as use", MO, MONum);
     else if (MO->isImplicit())
       report("Explicit definition marked as implicit", MO, MONum);