diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-09-20 23:08:39 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-09-20 23:08:39 +0000 |
commit | 2df8ac84ae8317b6a96f19bbc984d2bd02cff087 (patch) | |
tree | 92f991628f1d836ace49ab2fef08d1757269a755 /lib/CodeGen/LiveIntervalAnalysis.cpp | |
parent | d57ae39a885649cf4d86e50e11fd2c453eae78d5 (diff) |
Extend -new-coalescer SSA update to handle mapped values as well.
The old-fashioned many-to-one value mapping doesn't always work when
merging vector lanes. A value can map to multiple different values, and
it can even be necessary to insert new PHIs.
When a value number is defined by a copy from a value number that
required SSa update, include the live range of the copied value number
in the SSA update as well. It is not necessarily a copy of the original
value number any longer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164329 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r-- | lib/CodeGen/LiveIntervalAnalysis.cpp | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp index 6c26b79f11..dca305849e 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.cpp +++ b/lib/CodeGen/LiveIntervalAnalysis.cpp @@ -742,9 +742,6 @@ void LiveIntervals::extendToIndices(LiveInterval *LI, void LiveIntervals::pruneValue(LiveInterval *LI, SlotIndex Kill, SmallVectorImpl<SlotIndex> *EndPoints) { LiveRangeQuery LRQ(*LI, Kill); - assert (!LRQ.valueDefined() && "Can't prune value at the defining instr"); - - // Also can't prune a value that isn't there. VNInfo *VNI = LRQ.valueOut(); if (!VNI) return; |