mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-26 20:57:15 +00:00
Use the precomputed def presence in RAGreedy::calcSpillCost.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136742 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5ebca793db
commit
3f5beede1b
@ -864,7 +864,6 @@ bool RAGreedy::calcCompactRegion(GlobalSplitCandidate &Cand) {
|
||||
/// SA around all use blocks instead of forming bundle regions.
|
||||
float RAGreedy::calcSpillCost() {
|
||||
float Cost = 0;
|
||||
const LiveInterval &LI = SA->getParent();
|
||||
ArrayRef<SplitAnalysis::BlockInfo> UseBlocks = SA->getUseBlocks();
|
||||
for (unsigned i = 0; i != UseBlocks.size(); ++i) {
|
||||
const SplitAnalysis::BlockInfo &BI = UseBlocks[i];
|
||||
@ -873,16 +872,8 @@ float RAGreedy::calcSpillCost() {
|
||||
Cost += SpillPlacer->getBlockFrequency(Number);
|
||||
|
||||
// Unless the value is redefined in the block.
|
||||
if (BI.LiveIn && BI.LiveOut) {
|
||||
SlotIndex Start, Stop;
|
||||
tie(Start, Stop) = Indexes->getMBBRange(Number);
|
||||
LiveInterval::const_iterator I = LI.find(Start);
|
||||
assert(I != LI.end() && "Expected live-in value");
|
||||
// Is there a different live-out value? If so, we need an extra spill
|
||||
// instruction.
|
||||
if (I->end < Stop)
|
||||
Cost += SpillPlacer->getBlockFrequency(Number);
|
||||
}
|
||||
if (BI.LiveIn && BI.LiveOut && BI.FirstDef)
|
||||
Cost += SpillPlacer->getBlockFrequency(Number);
|
||||
}
|
||||
return Cost;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user