Mark dead def as unused.
authorEvan Cheng <evan.cheng@apple.com>
Fri, 2 Mar 2007 10:43:16 +0000 (10:43 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 2 Mar 2007 10:43:16 +0000 (10:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34844 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegisterScavenging.cpp

index 7efae9ca5c089f816e2ad1fcdee5ea4bb3d3c3b5..c5389d922e2687c11aedf19aaa975b1607901a89 100644 (file)
@@ -100,14 +100,18 @@ void RegScavenger::forward() {
     if (!MO.isReg() || !MO.isDef())
       continue;
     unsigned Reg = MO.getReg();
+    // If it's dead upon def, then it is now free.
+    if (MO.isDead()) {
+      setUnused(Reg);
+      continue;
+    }
     // Skip two-address destination operand.
     if (TID->findTiedToSrcOperand(i) != -1) {
       assert(isUsed(Reg));
       continue;
     }
     assert(isUnused(Reg) || isReserved(Reg));
-    if (!MO.isDead())
-      setUsed(Reg);
+    setUsed(Reg);
   }
 }