summaryrefslogtreecommitdiffstats
path: root/llvm/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
commit4d30f90e3593f7d8f3a795ac435423fed3c4aa89 (patch)
tree660c51a31cac99c3440777a102ad288828b80f09 /llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
parent3fe617cc098df04d16a660e1fd879fea4df31de9 (diff)
downloadbcm5719-llvm-4d30f90e3593f7d8f3a795ac435423fed3c4aa89.tar.gz
bcm5719-llvm-4d30f90e3593f7d8f3a795ac435423fed3c4aa89.zip
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> llvm-svn: 112534
Diffstat (limited to 'llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp b/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
index 46254fdee64..d1acacfb1d0 100644
--- a/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
+++ b/llvm/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);
OpenPOWER on IntegriCloud