now that fp reg kill insertion stuff happens as a separate
authorChris Lattner <sabre@nondot.org>
Fri, 21 May 2010 18:17:54 +0000 (18:17 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 21 May 2010 18:17:54 +0000 (18:17 +0000)
commita26a8471bdb132f963f26e4df2091ed204024f36
treee88cfb3999012b41a256078917946f4a03dd1dc5
parentd596c90030fc7a4dbfdfcab32ce0eae10171018e
now that fp reg kill insertion stuff happens as a separate
pass after isel instead of being interlaced with it, we can
trust that all the code for a function has been isel'd before
it is run.

The practical impact of this is that we can scan for machine
instr phis instead of doing a fuzzy match on the LLVM BB for
phi nodes.  Doing the fuzzy match required knowing when isel
would produce an fp reg stack phi which was gross.  It was
also wrong in cases where select got lowered to a branch
tree because cmovs aren't available (PR6828).

Just do the scan on machine phis which is simpler, faster
and more correct.  This fixes PR6828.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104333 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FloatingPointRegKill.cpp
test/CodeGen/X86/fp-stack.ll [new file with mode: 0644]