[llvm-branch-commits] [llvm-branch] r80440 - /llvm/branches/Apple/Bender-SWB/lib/CodeGen/TwoAddressInstructionPass.cpp
Bill Wendling
isanbard at gmail.com
Sat Aug 29 14:20:23 PDT 2009
Author: void
Date: Sat Aug 29 16:20:22 2009
New Revision: 80440
URL: http://llvm.org/viewvc/llvm-project?rev=80440&view=rev
Log:
$ svn merge -c 71635 https://llvm.org/svn/llvm-project/llvm/trunk
--- Merging r71635 into '.':
U lib/CodeGen/TwoAddressInstructionPass.cpp
$ svn merge -c 71769 https://llvm.org/svn/llvm-project/llvm/trunk
--- Merging r71769 into '.':
G lib/CodeGen/TwoAddressInstructionPass.cpp
Modified:
llvm/branches/Apple/Bender-SWB/lib/CodeGen/TwoAddressInstructionPass.cpp
Modified: llvm/branches/Apple/Bender-SWB/lib/CodeGen/TwoAddressInstructionPass.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Bender-SWB/lib/CodeGen/TwoAddressInstructionPass.cpp?rev=80440&r1=80439&r2=80440&view=diff
==============================================================================
--- llvm/branches/Apple/Bender-SWB/lib/CodeGen/TwoAddressInstructionPass.cpp (original)
+++ llvm/branches/Apple/Bender-SWB/lib/CodeGen/TwoAddressInstructionPass.cpp Sat Aug 29 16:20:22 2009
@@ -316,7 +316,7 @@
MachineInstr *TwoAddressInstructionPass::FindLastUseInMBB(unsigned Reg,
MachineBasicBlock *MBB,
unsigned Dist) {
- unsigned LastUseDist = Dist;
+ unsigned LastUseDist = 0;
MachineInstr *LastUse = 0;
for (MachineRegisterInfo::reg_iterator I = MRI->reg_begin(Reg),
E = MRI->reg_end(); I != E; ++I) {
@@ -327,7 +327,10 @@
DenseMap<MachineInstr*, unsigned>::iterator DI = DistanceMap.find(MI);
if (DI == DistanceMap.end())
continue;
- if (MO.isUse() && DI->second < LastUseDist) {
+ if (DI->second >= Dist)
+ continue;
+
+ if (MO.isUse() && DI->second > LastUseDist) {
LastUse = DI->first;
LastUseDist = DI->second;
}
@@ -858,6 +861,12 @@
}
}
}
+
+ // We're really going to nuke the old inst. If regB was marked
+ // as a kill we need to update its Kills list.
+ if (mi->getOperand(si).isKill())
+ LV->removeVirtualRegisterKilled(regB, mi);
+
mbbi->erase(mi); // Nuke the old inst.
mi = nmi;
++NumDeletes;
More information about the llvm-branch-commits
mailing list