summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-09-20 23:08:39 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-09-20 23:08:39 +0000
commit09cd3036557304408334cdc4207eb17079d500db (patch)
treeb5dd62853c18175fb456064107e6ae8523b2a611 /llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
parentb85248da952ef5fc7773e46dd396d555bb2d6121 (diff)
downloadbcm5719-llvm-09cd3036557304408334cdc4207eb17079d500db.tar.gz
bcm5719-llvm-09cd3036557304408334cdc4207eb17079d500db.zip
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. llvm-svn: 164329
Diffstat (limited to 'llvm/lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r--llvm/lib/CodeGen/LiveIntervalAnalysis.cpp3
1 files changed, 0 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
index 6c26b79f119..dca305849e5 100644
--- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/llvm/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;
OpenPOWER on IntegriCloud