blob: 8b5884f1ed14e6ec09fb43f06ed204f6c31fee69 [file] [log] [blame]
The traces in this directory are used for validating and testing
performance of the math library. Each file contains the input
arguments to the specific math functions, written in raw binary
format.
exp,log,pow are collected from the Perflab benchmark
compiler/rephil/docs/v7 and expf is collected from
util/math:fastmath_unittest.
The traces were collected by linking in a small library that wrote
that first 4M arguments to file before returning the actual value.
- Library was added as a dep to "base:base".
- To avoid write samples for genrules, the profiling was guarded by a
macro that was defined using --copt.
- Tcmalloc holds a lock while it calls log(), so care had to be taken
not to cause a deadlock in the profiling of log().
For the other functions, the actual value could be calculated
using something like this:
_exp = (double (*)(double)) dlsym(RTLD_NEXT, "exp");
return _exp(x);
for log(), we made the following call:
return log10(x)/log10(2.71828182846);