Implement a more intelligent way of spilling uses across an invoke boundary.
authorBill Wendling <isanbard@gmail.com>
Sat, 10 Mar 2012 07:11:55 +0000 (07:11 +0000)
committerBill Wendling <isanbard@gmail.com>
Sat, 10 Mar 2012 07:11:55 +0000 (07:11 +0000)
commitfbf9ff462134a635eb0fc3bc86c70cc59fb065d1
tree0105727413aacb23bd4fe6471c9541bfe65c2c0d
parentb7487d4edc34fa22b697d0874331c163ed2c6847
Implement a more intelligent way of spilling uses across an invoke boundary.

The old way of determine when and where to spill a value that was used inside of
a landing pad resulted in spilling that value everywhere and not just at the
invoke edge.

This algorithm determines which values are used within a landing pad. It then
spills those values before the invoke and reloads them before the uses. This
should prevent excessive spilling in many cases, e.g. inside of loops.
<rdar://problem/10609139>

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