aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/PrologEpilogInserter.cpp
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2009-10-09 17:33:33 +0000
committerJim Grosbach <grosbach@apple.com>2009-10-09 17:33:33 +0000
commit71c8dc9b20536e89afdae1b82075806761a57c89 (patch)
treee65203784345319f02ccb4e8c9c00d57f19a9858 /lib/CodeGen/PrologEpilogInserter.cpp
parente8e72be33ad0a814730e3e6479d42bb6d41134df (diff)
downloadexternal_llvm-71c8dc9b20536e89afdae1b82075806761a57c89.zip
external_llvm-71c8dc9b20536e89afdae1b82075806761a57c89.tar.gz
external_llvm-71c8dc9b20536e89afdae1b82075806761a57c89.tar.bz2
when previous scratch register is killed, flag the value as no longer tracking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83653 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/PrologEpilogInserter.cpp')
-rw-r--r--lib/CodeGen/PrologEpilogInserter.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/CodeGen/PrologEpilogInserter.cpp b/lib/CodeGen/PrologEpilogInserter.cpp
index d9b01d0..8793df7 100644
--- a/lib/CodeGen/PrologEpilogInserter.cpp
+++ b/lib/CodeGen/PrologEpilogInserter.cpp
@@ -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;
}
}