Alexander Pozdneev
Alexander Pozdneev

Reputation: 1389

__xl_pow, __xl_log, __xl_exp in perf report

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

Answers (1)

Rafik Zurob
Rafik Zurob

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

Related Questions