forked from OSchip/llvm-project
Reject RS_Spill ranges from local splitting as well.
All new local ranges are marked as RS_New now, so there is no need to attempt splitting of RS_Spill ranges any more. llvm-svn: 137002
This commit is contained in:
parent
02cf10bdfd
commit
d4bb1d43e8
|
@ -1501,6 +1501,10 @@ unsigned RAGreedy::tryLocalSplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
||||||
/// @return Physreg when VirtReg may be assigned and/or new NewVRegs.
|
/// @return Physreg when VirtReg may be assigned and/or new NewVRegs.
|
||||||
unsigned RAGreedy::trySplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
unsigned RAGreedy::trySplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
||||||
SmallVectorImpl<LiveInterval*>&NewVRegs) {
|
SmallVectorImpl<LiveInterval*>&NewVRegs) {
|
||||||
|
// Ranges must be Split2 or less.
|
||||||
|
if (getStage(VirtReg) >= RS_Spill)
|
||||||
|
return 0;
|
||||||
|
|
||||||
// Local intervals are handled separately.
|
// Local intervals are handled separately.
|
||||||
if (LIS->intervalIsInOneMBB(VirtReg)) {
|
if (LIS->intervalIsInOneMBB(VirtReg)) {
|
||||||
NamedRegionTimer T("Local Splitting", TimerGroupName, TimePassesIsEnabled);
|
NamedRegionTimer T("Local Splitting", TimerGroupName, TimePassesIsEnabled);
|
||||||
|
@ -1510,10 +1514,6 @@ unsigned RAGreedy::trySplit(LiveInterval &VirtReg, AllocationOrder &Order,
|
||||||
|
|
||||||
NamedRegionTimer T("Global Splitting", TimerGroupName, TimePassesIsEnabled);
|
NamedRegionTimer T("Global Splitting", TimerGroupName, TimePassesIsEnabled);
|
||||||
|
|
||||||
// Ranges must be Split2 or less.
|
|
||||||
if (getStage(VirtReg) >= RS_Spill)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
SA->analyze(&VirtReg);
|
SA->analyze(&VirtReg);
|
||||||
|
|
||||||
// FIXME: SplitAnalysis may repair broken live ranges coming from the
|
// FIXME: SplitAnalysis may repair broken live ranges coming from the
|
||||||
|
|
Loading…
Reference in New Issue