Extend -new-coalescer SSA update to handle mapped values as well.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 20 Sep 2012 23:08:39 +0000 (23:08 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 20 Sep 2012 23:08:39 +0000 (23:08 +0000)
commit2df8ac84ae8317b6a96f19bbc984d2bd02cff087
tree92f991628f1d836ace49ab2fef08d1757269a755
parentd57ae39a885649cf4d86e50e11fd2c453eae78d5
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
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/RegisterCoalescer.cpp