[llvm] r213752 - Enable partial libcall inlining for all targets by default.

Tobias Grosser tobias at grosser.es
Fri Aug 1 12:41:39 PDT 2014


On 23/07/2014 15:33, James Molloy wrote:
> Author: jamesm
> Date: Wed Jul 23 08:33:00 2014
> New Revision: 213752
>
> URL: http://llvm.org/viewvc/llvm-project?rev=213752&view=rev
> Log:
> 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.


I was just looking through our 'clang -O3' lnt performance tester 
(running on x86_64 - penryn) and it seems this caused a couple of nice 
improvements, including almost 20% run-time performance improvement for
'tsp' and around 14% for 'nbody:

http://llvm.org/perf/db_perf/v4/nts/graph?plot.0=4.1291.0&highlight_run=209

http://llvm.org/perf/db_perf/v4/nts/graph?plot.0=4.1432.0&highlight_run=209

Cheers,
Tobias



More information about the llvm-commits mailing list