Remember to clear the shadow kill flag at the same time as clearing the real
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 30 Aug 2010 21:52:40 +0000 (21:52 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 30 Aug 2010 21:52:40 +0000 (21:52 +0000)
kill flag.

This could cause duplicate kill flags when the same register was used twice in a
continuous sequence of STRs.

There is no small test case. <rdar://problem/8218046>

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

lib/Target/ARM/ARMLoadStoreOptimizer.cpp

index 46254fdee64cbe6eef8bf9cdaffb5e18915b3420..d1acacfb1d0eeec9dcd9e4b65bcc335b170a9dd7 100644 (file)
@@ -324,6 +324,7 @@ void ARMLoadStoreOpt::MergeOpsUpdate(MachineBasicBlock &MBB,
       if (KilledRegs.count(Reg)) {
         unsigned j = Killer[Reg];
         memOps[j].MBBI->getOperand(0).setIsKill(false);
+        memOps[j].isKill = false;
       }
     }
     MBB.erase(memOps[i].MBBI);