summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2009-01-21 00:13:28 +0000
committerOwen Anderson <resistor@mac.com>2009-01-21 00:13:28 +0000
commitbe7a29de0b54dd1d4d79b0652b42cab1fc106b20 (patch)
tree7348ff5f4edba3a6f04724570104ce0bb20282b7 /llvm/lib/CodeGen
parent19f2dd794e2622e667081a1258d2a40638ea2fd9 (diff)
downloadbcm5719-llvm-be7a29de0b54dd1d4d79b0652b42cab1fc106b20.tar.gz
bcm5719-llvm-be7a29de0b54dd1d4d79b0652b42cab1fc106b20.zip
Be more aggressive about renumbering vregs after splitting them.
llvm-svn: 62639
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/PreAllocSplitting.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/PreAllocSplitting.cpp b/llvm/lib/CodeGen/PreAllocSplitting.cpp
index 6b37637ee95..3c8257f1dac 100644
--- a/llvm/lib/CodeGen/PreAllocSplitting.cpp
+++ b/llvm/lib/CodeGen/PreAllocSplitting.cpp
@@ -1127,9 +1127,11 @@ bool PreAllocSplitting::Rematerialize(unsigned vreg, VNInfo* ValNo,
LIs->InsertMachineInstrInMaps(prior(RestorePt), RestoreIdx);
if (KillPt->getParent() == BarrierMBB) {
- UpdateRegisterInterval(ValNo, LIs->getUseIndex(KillIdx)+1,
+ VNInfo* After = UpdateRegisterInterval(ValNo, LIs->getUseIndex(KillIdx)+1,
LIs->getDefIndex(RestoreIdx));
+ RenumberValno(After);
+
++NumSplits;
++NumRemats;
return true;
@@ -1312,9 +1314,11 @@ bool PreAllocSplitting::SplitRegLiveInterval(LiveInterval *LI) {
UpdateSpillSlotInterval(ValNo, LIs->getUseIndex(SpillIndex)+1,
LIs->getDefIndex(RestoreIndex));
- UpdateRegisterInterval(ValNo, LIs->getUseIndex(SpillIndex)+1,
+ VNInfo* After = UpdateRegisterInterval(ValNo,
+ LIs->getUseIndex(SpillIndex)+1,
LIs->getDefIndex(RestoreIndex));
-
+ RenumberValno(After);
+
++NumSplits;
return true;
}
OpenPOWER on IntegriCloud