mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
Terminate all dead defs at the dead slot instead of the 'next' slot.
This makes no difference for normal defs, but early clobber dead defs now look like: [Slot_EarlyClobber; Slot_Dead) instead of: [Slot_EarlyClobber; Slot_Register). Live ranges for normal dead defs look like: [Slot_Register; Slot_Dead) as before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144512 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -686,7 +686,7 @@ bool LiveIntervals::shrinkToUses(LiveInterval *li,
|
||||
VNInfo *VNI = *I;
|
||||
if (VNI->isUnused())
|
||||
continue;
|
||||
NewLI.addRange(LiveRange(VNI->def, VNI->def.getNextSlot(), VNI));
|
||||
NewLI.addRange(LiveRange(VNI->def, VNI->def.getDeadSlot(), VNI));
|
||||
|
||||
// A use tied to an early-clobber def ends at the load slot and isn't caught
|
||||
// above. Catch it here instead. This probably only ever happens for inline
|
||||
@ -751,7 +751,7 @@ bool LiveIntervals::shrinkToUses(LiveInterval *li,
|
||||
continue;
|
||||
LiveInterval::iterator LII = NewLI.FindLiveRangeContaining(VNI->def);
|
||||
assert(LII != NewLI.end() && "Missing live range for PHI");
|
||||
if (LII->end != VNI->def.getNextSlot())
|
||||
if (LII->end != VNI->def.getDeadSlot())
|
||||
continue;
|
||||
if (VNI->isPHIDef()) {
|
||||
// This is a dead PHI. Remove it.
|
||||
|
Reference in New Issue
Block a user