Only insert FP_REG_KILL instructions in MachineBasicBlocks that actually
authorChris Lattner <sabre@nondot.org>
Sun, 22 Feb 2004 19:47:26 +0000 (19:47 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 22 Feb 2004 19:47:26 +0000 (19:47 +0000)
commit986618ebc794c230fdff62f807c113490cf1b1e9
treede40b663a9e84539f8d56ced6991878356d028c3
parentd0d1c8f830afbdbb708096be27d35101e13414a6
Only insert FP_REG_KILL instructions in MachineBasicBlocks that actually
use FP instructions.  This reduces the number of instructions inserted in
176.gcc (for example) from 58074 to 101 (it doesn't use much FP, which
is typical).  This reduction speeds up the entire code generator.  In the
case of 176.gcc, llc went from taking 31.38s to 24.78s.  The passes that
sped up the most are the register allocator and the 2 live variable analysis
passes, which sped up 2.3, 1.3, and 1.5s respectively.  The asmprinter
pass also sped up because it doesn't print the instructions in comments :)

Note that this patch is likely to expose latent bugs in machine code passes,
because now basicblock can be empty, where they were never empty before.  I
cleaned out regalloclocal, but who knows about linscan :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11717 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/InstSelectSimple.cpp
lib/Target/X86/X86ISelSimple.cpp