mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-27 06:54:30 +00:00
Add stub for RAGreedy::trySplit.
llvm-svn: 121736
This commit is contained in:
parent
c84f8c23b3
commit
ffefd5bd4e
@ -83,6 +83,9 @@ private:
|
|||||||
bool checkUncachedInterference(LiveInterval &, unsigned);
|
bool checkUncachedInterference(LiveInterval &, unsigned);
|
||||||
bool reassignVReg(LiveInterval &InterferingVReg, unsigned OldPhysReg);
|
bool reassignVReg(LiveInterval &InterferingVReg, unsigned OldPhysReg);
|
||||||
bool reassignInterferences(LiveInterval &VirtReg, unsigned PhysReg);
|
bool reassignInterferences(LiveInterval &VirtReg, unsigned PhysReg);
|
||||||
|
|
||||||
|
unsigned trySplit(LiveInterval&, AllocationOrder&,
|
||||||
|
SmallVectorImpl<LiveInterval*>&);
|
||||||
};
|
};
|
||||||
} // end anonymous namespace
|
} // end anonymous namespace
|
||||||
|
|
||||||
@ -222,6 +225,15 @@ bool RAGreedy::reassignInterferences(LiveInterval &VirtReg, unsigned PhysReg) {
|
|||||||
return reassignVReg(*Q.interferingVRegs()[0], PhysReg);
|
return reassignVReg(*Q.interferingVRegs()[0], PhysReg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// trySplit - Try to split VirtReg or one of its interferences, making it
|
||||||
|
/// assignable.
|
||||||
|
/// @return Physreg when VirtReg may be assigned and/or new SplitVRegs.
|
||||||
|
unsigned RAGreedy::trySplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
||||||
|
SmallVectorImpl<LiveInterval*>&SplitVRegs) {
|
||||||
|
NamedRegionTimer T("Splitter", TimerGroupName, TimePassesIsEnabled);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned RAGreedy::selectOrSplit(LiveInterval &VirtReg,
|
unsigned RAGreedy::selectOrSplit(LiveInterval &VirtReg,
|
||||||
SmallVectorImpl<LiveInterval*> &SplitVRegs) {
|
SmallVectorImpl<LiveInterval*> &SplitVRegs) {
|
||||||
// Populate a list of physical register spill candidates.
|
// Populate a list of physical register spill candidates.
|
||||||
@ -266,6 +278,10 @@ unsigned RAGreedy::selectOrSplit(LiveInterval &VirtReg,
|
|||||||
PhysRegSpillCands.insert(PhysRegSpillCands.end(), ReassignCands.begin(),
|
PhysRegSpillCands.insert(PhysRegSpillCands.end(), ReassignCands.begin(),
|
||||||
ReassignCands.end());
|
ReassignCands.end());
|
||||||
|
|
||||||
|
unsigned PhysReg = trySplit(VirtReg, Order, SplitVRegs);
|
||||||
|
if (PhysReg || !SplitVRegs.empty())
|
||||||
|
return PhysReg;
|
||||||
|
|
||||||
// Try to spill another interfering reg with less spill weight.
|
// Try to spill another interfering reg with less spill weight.
|
||||||
NamedRegionTimer T("Spiller", TimerGroupName, TimePassesIsEnabled);
|
NamedRegionTimer T("Spiller", TimerGroupName, TimePassesIsEnabled);
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user