aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-08-30 21:52:40 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-08-30 21:52:40 +0000
commit68322e5d81e982ca050362917555bc572c9a36ad (patch)
treeeddd9d0c9ffe9080495a6da35f3190e00065d365 /lib/Target/ARM/ARMLoadStoreOptimizer.cpp
parent44e8676f6b123405493b43b8b1bc9c361fac4b46 (diff)
downloadexternal_llvm-68322e5d81e982ca050362917555bc572c9a36ad.zip
external_llvm-68322e5d81e982ca050362917555bc572c9a36ad.tar.gz
external_llvm-68322e5d81e982ca050362917555bc572c9a36ad.tar.bz2
Remember to clear the shadow kill flag at the same time as clearing the real
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
Diffstat (limited to 'lib/Target/ARM/ARMLoadStoreOptimizer.cpp')
-rw-r--r--lib/Target/ARM/ARMLoadStoreOptimizer.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMLoadStoreOptimizer.cpp b/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
index 46254fd..d1acacf 100644
--- a/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
+++ b/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
@@ -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);