diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-02-27 19:57:11 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-02-27 19:57:11 +0000 |
commit | 21b3f31f8f7d77b9c3a35012139df92ba40e7c92 (patch) | |
tree | 9ce49af150aa5f4b459c701142d9ae2462339e42 /lib/CodeGen/VirtRegMap.cpp | |
parent | 18714aeaed2a74bfc85dc5abe24a9193882406c5 (diff) |
Fix a bug in dead spill slot elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47687 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/VirtRegMap.cpp')
-rw-r--r-- | lib/CodeGen/VirtRegMap.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/VirtRegMap.cpp b/lib/CodeGen/VirtRegMap.cpp index d210d93835..6cfbee9b7b 100644 --- a/lib/CodeGen/VirtRegMap.cpp +++ b/lib/CodeGen/VirtRegMap.cpp @@ -914,6 +914,7 @@ bool LocalSpiller::PrepForUnfoldOpti(MachineBasicBlock &MBB, Ops.push_back(Idx); MachineInstr *FoldedMI = TII->foldMemoryOperand(MF, NewMI, Ops, SS); if (FoldedMI) { + VRM.addSpillSlotUse(SS, FoldedMI); if (!VRM.hasPhys(UnfoldVR)) VRM.assignVirt2Phys(UnfoldVR, UnfoldPR); VRM.virtFolded(VirtReg, FoldedMI, VirtRegMap::isRef); @@ -1414,6 +1415,7 @@ void LocalSpiller::RewriteMBB(MachineBasicBlock &MBB, VirtRegMap &VRM) { MBB.insert(MII, NewMIs[0]); NewStore = NewMIs[1]; MBB.insert(MII, NewStore); + VRM.addSpillSlotUse(SS, NewStore); VRM.RemoveMachineInstrFromMaps(&MI); MBB.erase(&MI); Erased = true; |