Reputation: 1389
I work on performance profiling of an application app
that was compiled with IBM XL Fortran compiler for IBM POWER8 processor. This is a part of the output of perf report
:
3.88% app app [.] __xl_pow
2.91% app app [.] __xl_log
1.81% app app [.] __xl_exp
What are these functions shown in the profile? My hypothesis is that these are the implementations of pow()
, log()
and exp()
that are supplied with the compiler (see a similar discussion). Is that correct?
Upvotes: 3
Views: 124
Reputation: 361
When you enable an optimization level of -O3
or higher, the XL compilers replace several libm
function calls with calls to a high performance library shipped with the compiler. The __xl_*
function calls you're seeing are coming from that library. If you don't want them, for example because their precision is sometimes slightly different from the libm calls, compile with -qstrict=library
.
Note: Even with -qstrict=library
, XL Fortran might still call its own functions for pow()
, but these functions have the same precision as libm
's pow()
.
Upvotes: 4