mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-13 08:25:27 +00:00
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
This commit is contained in:
@@ -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 << " ";
|
||||
}
|
||||
|
Reference in New Issue
Block a user