Enable partial libcall inlining for all targets by default.
authorJames Molloy <james.molloy@arm.com>
Wed, 23 Jul 2014 13:33:00 +0000 (13:33 +0000)
committerJames Molloy <james.molloy@arm.com>
Wed, 23 Jul 2014 13:33:00 +0000 (13:33 +0000)
commited1006469907037a95c6501ca145cf3b525695d3
treebed207cd9f5f2153b47331f0c8dccff128ae7cd9
parent3b867c9c8e374e3fd754e79a34715450b6735e7e
Enable partial libcall inlining for all targets by default.

This pass attempts to speculatively use a sqrt instruction if one exists on the target, falling back to a libcall if the target instruction returned NaN.

This was enabled for MIPS and System-Z, but is well guarded and is good for most targets - GCC does this for (that I've checked) X86, ARM and AArch64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213752 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/Passes.cpp
lib/Target/Mips/MipsTargetMachine.cpp
lib/Target/SystemZ/SystemZTargetMachine.cpp