diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-11-13 22:42:13 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-11-13 22:42:13 +0000 |
commit | d8f2405e7300bcc2197b98e999e6a918a8e162da (patch) | |
tree | aa12c49f17d7570f000b4eaf724e56c48e395d5d /llvm/lib/CodeGen/LiveIntervalAnalysis.cpp | |
parent | 424ca7bbf5cafdaebe05fe5f4b134995b41922cc (diff) | |
download | bcm5719-llvm-d8f2405e7300bcc2197b98e999e6a918a8e162da.tar.gz bcm5719-llvm-d8f2405e7300bcc2197b98e999e6a918a8e162da.zip |
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.
llvm-svn: 144512
Diffstat (limited to 'llvm/lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LiveIntervalAnalysis.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp index 1346487a668..7baa5fbdf50 100644 --- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -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. |