diff options
author | bde <bde@FreeBSD.org> | 2008-02-25 18:28:58 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2008-02-25 18:28:58 +0000 |
commit | 49cb35343eeaa02f4e480228eb7148a3305d3b70 (patch) | |
tree | 153e811e6334da38c490b98538476e022b0711ec /sys/fs/tmpfs/tmpfs_vnops.c | |
parent | b9adbf63f9fc44d962bc6da15d5b1fc48c08afb1 (diff) | |
download | FreeBSD-src-49cb35343eeaa02f4e480228eb7148a3305d3b70.zip FreeBSD-src-49cb35343eeaa02f4e480228eb7148a3305d3b70.tar.gz |
Use a temporary array instead of the arg array y[] for calling
__kernel_rem_pio2(). This simplifies analysis of aliasing and thus
results in better code for the usual case where __kernel_rem_pio2()
is not called. In particular, when __ieee854_rem_pio2[f]() is inlined,
it normally results in y[] being returned in registers. I couldn't
get this to work using the restrict qualifier.
In float precision, this saves 2-3% in most cases on amd64 and i386
(A64) despite it not being inlined in float precision yet. In double
precision, this has high variance, with an average gain of 2% for
amd64 and 0.7% for i386 (but a much larger gain for usual cases) and
some losses.
Diffstat (limited to 'sys/fs/tmpfs/tmpfs_vnops.c')
0 files changed, 0 insertions, 0 deletions