Handle <def,undef> in the second loop as well.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 2 May 2011 20:36:53 +0000 (20:36 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 2 May 2011 20:36:53 +0000 (20:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130718 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegisterScavenging.cpp

index e2c25aba02e09d5dec372affe256aae6e6b3c14d..9e9a145b0aa45ec1459070b20a500a4715624fce 100644 (file)
@@ -181,12 +181,14 @@ void RegScavenger::forward() {
   // Verify uses and defs.
   for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
     const MachineOperand &MO = MI->getOperand(i);
-    if (!MO.isReg() || MO.isUndef())
+    if (!MO.isReg())
       continue;
     unsigned Reg = MO.getReg();
     if (!Reg || isReserved(Reg))
       continue;
     if (MO.isUse()) {
+      if (MO.isUndef())
+        continue;
       if (!isUsed(Reg)) {
         // Check if it's partial live: e.g.
         // D0 = insert_subreg D0<undef>, S0