RegisterCoalescer: implicit phsreg uses are fine when rematerializing
authorMatthias Braun <matze@braunis.de>
Fri, 24 Apr 2015 00:01:37 +0000 (00:01 +0000)
committerMatthias Braun <matze@braunis.de>
Fri, 24 Apr 2015 00:01:37 +0000 (00:01 +0000)
The target hooks should have already checked them. This change is
necessary to enable the remateriailzation on R600.

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

lib/CodeGen/RegisterCoalescer.cpp

index a8fcd950268dcdb5bb04431d7360f61a4069e3b5..ee0877e2f23aeeae52e306c3527672360282250e 100644 (file)
@@ -963,8 +963,8 @@ bool RegisterCoalescer::reMaterializeTrivialDef(const CoalescerPair &CP,
   for (unsigned i = NewMI->getDesc().getNumOperands(),
          e = NewMI->getNumOperands(); i != e; ++i) {
     MachineOperand &MO = NewMI->getOperand(i);
-    if (MO.isReg()) {
-      assert(MO.isDef() && MO.isImplicit() && MO.isDead() &&
+    if (MO.isReg() && MO.isDef()) {
+      assert(MO.isImplicit() && MO.isDead() &&
              TargetRegisterInfo::isPhysicalRegister(MO.getReg()));
       NewMIImplDefs.push_back(MO.getReg());
     }