If-converter models predicated defs as read + write. The read should be marked as...
authorEvan Cheng <evan.cheng@apple.com>
Wed, 30 May 2012 00:42:02 +0000 (00:42 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 30 May 2012 00:42:02 +0000 (00:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157662 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/IfConversion.cpp

index 75ae5b9c2c2760b9c5834c58d491050945072f53..00ea3c599f6b97d4108d262b8a1e6e2cc8c075f0 100644 (file)
@@ -993,7 +993,8 @@ static void UpdatePredRedefs(MachineInstr *MI, SmallSet<unsigned,4> &Redefs,
       if (AddImpUse)
         // Treat predicated update as read + write.
         MI->addOperand(MachineOperand::CreateReg(Reg, false/*IsDef*/,
-                                                true/*IsImp*/,false/*IsKill*/));
+                                              true/*IsImp*/,false/*IsKill*/,
+                                              false/*IsDead*/,true/*IsUndef*/));
     } else {
       Redefs.insert(Reg);
       for (const uint16_t *SR = TRI->getSubRegisters(Reg); *SR; ++SR)