diff options
author | kib <kib@FreeBSD.org> | 2012-03-10 08:49:44 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2012-03-10 08:49:44 +0000 |
commit | fb48ba5d907bec4322e4292fd840d33a0bb662ac (patch) | |
tree | a8f58ba276201ae6ec5ed36f99021f82c9135db4 /lib | |
parent | b186de9a2407a944cc309e501c75e8e9afe37ab5 (diff) | |
download | FreeBSD-src-fb48ba5d907bec4322e4292fd840d33a0bb662ac.zip FreeBSD-src-fb48ba5d907bec4322e4292fd840d33a0bb662ac.tar.gz |
Optimize tls_get_addr_common(). The change provides around 30% speedup
for TLS microbenchmark using global-dynamic TLS model on amd64 (which is
default for PIC dso objects).
Split the slow path into tls_get_addr_slow(), for which inlining is
disabled. This prevents the registers spill on tls_get_addr_common()
entry.
Provide static branch hint to the compiler, indicating that slow path
is not likely to be taken.
While there, do some minimal style adjustments.
Reported and tested by: davidxu
MFC after: 1 week
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions