From ffd1326ff8dfc652a8026c3faebf55bbba7c32c7 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Thu, 9 Jul 2009 03:57:02 +0000 Subject: Improved tracking of value number kills. VN kills are now represented as an (index,bool) pair. The bool flag records whether the kill is a PHI kill or not. This code will be used to enable splitting of live intervals containing PHI-kills. A slight change to live interval weights introduced an extra spill into lsr-code-insertion (outside the critical sections). The test condition has been updated to reflect this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75097 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/LiveInterval.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'lib/CodeGen/LiveInterval.cpp') diff --git a/lib/CodeGen/LiveInterval.cpp b/lib/CodeGen/LiveInterval.cpp index 26722a3ca1..b786b1d85b 100644 --- a/lib/CodeGen/LiveInterval.cpp +++ b/lib/CodeGen/LiveInterval.cpp @@ -377,8 +377,9 @@ void LiveInterval::scaleNumbering(unsigned factor) { vni->def = InstrSlots::scale(vni->def, factor); for (unsigned i = 0; i < vni->kills.size(); ++i) { - if (vni->kills[i] != 0) - vni->kills[i] = InstrSlots::scale(vni->kills[i], factor); + if (!vni->kills[i].isPHIKill) + vni->kills[i].killIdx = + InstrSlots::scale(vni->kills[i].killIdx, factor); } } } @@ -840,7 +841,9 @@ void LiveInterval::print(std::ostream &OS, if (ee || vni->hasPHIKill()) { OS << "-("; for (unsigned j = 0; j != ee; ++j) { - OS << vni->kills[j]; + OS << vni->kills[j].killIdx; + if (vni->kills[j].isPHIKill) + OS << "*"; if (j != ee-1) OS << " "; } -- cgit v1.2.3-18-g5258