diff options
author | Jim Grosbach <grosbach@apple.com> | 2009-10-09 17:33:33 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2009-10-09 17:33:33 +0000 |
commit | 71c8dc9b20536e89afdae1b82075806761a57c89 (patch) | |
tree | e65203784345319f02ccb4e8c9c00d57f19a9858 /lib/CodeGen/PrologEpilogInserter.cpp | |
parent | e8e72be33ad0a814730e3e6479d42bb6d41134df (diff) | |
download | external_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.cpp | 5 |
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; } } |