mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-22 10:29:35 +00:00
Use the new predicate to control when we do prealloc splitting. Fix a small bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58738 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4e20c5c30b
commit
b214c6971b
@ -648,6 +648,10 @@ bool PreAllocSplitting::SplitRegLiveInterval(LiveInterval *LI) {
|
||||
if (DefMI && LIs->isReMaterializable(*LI, ValNo, DefMI))
|
||||
return false;
|
||||
|
||||
// If this would create a new join point, do not split.
|
||||
if (DefMI && createsNewJoin(LR, DefMI->getParent(), Barrier->getParent()))
|
||||
return false;
|
||||
|
||||
// Find all references in the barrier mbb.
|
||||
SmallPtrSet<MachineInstr*, 4> RefsInMBB;
|
||||
for (MachineRegisterInfo::reg_iterator I = MRI->reg_begin(CurrLI->reg),
|
||||
@ -862,7 +866,7 @@ bool PreAllocSplitting::createsNewJoin(LiveRange* LR,
|
||||
Stack.push_back(std::make_pair(PredMBB, ++S));
|
||||
continue;
|
||||
} else
|
||||
Stack.push_back(std::make_pair(PredMBB, ++S));
|
||||
Stack.push_back(std::make_pair(PredMBB, S+1));
|
||||
|
||||
MachineBasicBlock* MBB = *S;
|
||||
Visited.insert(MBB);
|
||||
|
Loading…
Reference in New Issue
Block a user