when previous scratch register is killed, flag the value as no longer tracking
authorJim Grosbach <grosbach@apple.com>
Fri, 9 Oct 2009 17:33:33 +0000 (17:33 +0000)
committerJim Grosbach <grosbach@apple.com>
Fri, 9 Oct 2009 17:33:33 +0000 (17:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83653 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/PrologEpilogInserter.cpp

index d9b01d0b26629208b3479f9517548dee9ea3d1f9..8793df7705fa93987456e12c6241d30da7771bb3 100644 (file)
@@ -797,10 +797,13 @@ void PEI::scavengeFrameVirtualRegs(MachineFunction &Fn) {
             if (Reg == PrevScratchReg) {
               if (MO.isUse()) {
                 // Two-address operands implicitly kill
-                if (MO.isKill() || MI->isRegTiedToDefOperand(i))
+                if (MO.isKill() || MI->isRegTiedToDefOperand(i)) {
+                  havePrevValue = false;
                   PrevScratchReg = 0;
+                }
               } else {
                 assert (MO.isDef());
+                havePrevValue = false;
                 PrevScratchReg = 0;
               }
             }