Add support for updating LiveIntervals to PHIElimination. If LiveIntervals are
authorCameron Zwarich <zwarich@apple.com>
Sun, 10 Feb 2013 06:42:36 +0000 (06:42 +0000)
committerCameron Zwarich <zwarich@apple.com>
Sun, 10 Feb 2013 06:42:36 +0000 (06:42 +0000)
commitb7cfac32f32f17e64a5addfdb833702160650f14
tree45c9bc3377d5c5ae4c39adc75427332e95c9e50a
parentd7c7a686ac18f8f3c035d158d8b713077be83ea4
Add support for updating LiveIntervals to PHIElimination. If LiveIntervals are
present, it currently verifies them with the MachineVerifier, and this passed
all of the test cases in 'make check' (when accounting for existing verifier
errors). There were some assertion failures in the two-address pass, but they
also happened on code without phis and look like they are caused by different
kill flags from LiveIntervals.

The only part that doesn't work is the critical edge splitting heuristic,
because there isn't currently an efficient way to update LiveIntervals after
splitting an edge. I'll probably start by implementing the slow fallback and
test that it works before tackling the fast path for single-block ranges. The
existing code that updates LiveVariables is fairly slow as it is.

There isn't a command-line option for enabling this; instead, just edit
PHIElimination.cpp to require LiveIntervals.

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