Don't try to set an EFLAGS operand to dead if no instruction was created.
authorDan Gohman <gohman@apple.com>
Wed, 11 Feb 2009 19:50:24 +0000 (19:50 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 11 Feb 2009 19:50:24 +0000 (19:50 +0000)
This fixes a bug introduced by r61215.

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

lib/Target/X86/X86RegisterInfo.cpp

index 89d9f9b939c73c25551dd1b6380e82272cec27ca..59e49eaf4f91abb1cc9571bd73184ac16fe26933 100644 (file)
@@ -412,11 +412,13 @@ eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
         }
       }
 
-      // The EFLAGS implicit def is dead.
-      New->getOperand(3).setIsDead();
+      if (New) {
+        // The EFLAGS implicit def is dead.
+        New->getOperand(3).setIsDead();
 
-      // Replace the pseudo instruction with a new instruction...
-      if (New) MBB.insert(I, New);
+        // Replace the pseudo instruction with a new instruction...
+        MBB.insert(I, New);
+      }
     }
   } else if (I->getOpcode() == getCallFrameDestroyOpcode()) {
     // If we are performing frame pointer elimination and if the callee pops