Replace SplitKit SSA update with an iterative algorithm very similar to the one
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 28 Oct 2010 20:34:52 +0000 (20:34 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 28 Oct 2010 20:34:52 +0000 (20:34 +0000)
commite1dde7b05a83438eeba4bd83f8cf080f56d22c5b
tree982c6bf572cd74125ac8801cd679c646d9bab7ad
parentd68f458244b9d9a6644a9550dd5cee60331c9e7d
Replace SplitKit SSA update with an iterative algorithm very similar to the one
in SSAUpdaterImpl.h

Verifying live intervals revealed that the old method was completely wrong, and
we need an iterative approach to calculating PHI placemant. Fortunately, we have
MachineDominators available, so we don't have to compute that over and over
like SSAUpdaterImpl.h must.

Live-out values are cached between calls to mapValue() and computed in a greedy
way, so most calls will be working with very small block sets.

Thanks to Bob for explaining how this should work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117599 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SplitKit.cpp
lib/CodeGen/SplitKit.h