mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-27 14:34:58 +00:00
Avoid editing the current live interval during remat.
The live interval may be used for a spill slot as well, and that spill slot could be shared by split registers. We cannot shrink it, even if we know the current register won't need the spill slot in that range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110721 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
987eeccb61
commit
b67b12ea64
@ -270,7 +270,7 @@ void InlineSpiller::reMaterializeAll() {
|
||||
lis_.RemoveMachineInstrFromMaps(DefMI);
|
||||
vrm_.RemoveMachineInstrFromMaps(DefMI);
|
||||
DefMI->eraseFromParent();
|
||||
li_->removeValNo(VNI);
|
||||
VNI->setIsDefAccurate(false);
|
||||
anyRemoved = true;
|
||||
}
|
||||
|
||||
@ -286,8 +286,8 @@ void InlineSpiller::reMaterializeAll() {
|
||||
MachineBasicBlock::iterator NextMI = MI;
|
||||
++NextMI;
|
||||
if (NextMI != MI->getParent()->end() && !lis_.isNotInMIMap(NextMI)) {
|
||||
SlotIndex NearIdx = lis_.getInstructionIndex(NextMI);
|
||||
if (li_->liveAt(NearIdx))
|
||||
VNInfo *VNI = li_->getVNInfoAt(lis_.getInstructionIndex(NextMI));
|
||||
if (VNI && (VNI->hasPHIKill() || usedValues_.count(VNI)))
|
||||
continue;
|
||||
}
|
||||
DEBUG(dbgs() << "Removing debug info due to remat:" << "\t" << *MI);
|
||||
|
Loading…
x
Reference in New Issue
Block a user