about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2014-09-25 16:49:38 -0400
committerChris Metcalf <cmetcalf@tilera.com>2014-10-06 11:20:59 -0400
commitd9cd52e64d7b6b0fd56566de87c826cb6fe3677d (patch)
tree2e79c9dae8aaf921b08bd73c3af19d65879545cd /ChangeLog
parent4b68ea1162f39f62590e49eb5d4371871e071f32 (diff)
downloadglibc-d9cd52e64d7b6b0fd56566de87c826cb6fe3677d.tar.gz
glibc-d9cd52e64d7b6b0fd56566de87c826cb6fe3677d.tar.xz
glibc-d9cd52e64d7b6b0fd56566de87c826cb6fe3677d.zip
tile: optimize memcmp
Customize memcmp.c for tile, using similar tricks from memcpy:

- replace MERGE macro with dblalign.
- replace memcmp_bytes function with revbytes.
- use __glibc_likely.
- use post-increment addressing.

The schedule is still not perfect: the compiler is not hoisting
code above the comparison branch, which could save a bundle or two.
memcmp speeds up by 30-40% on shorter aligned tests in benchtest,
with some tests with unaligned lengths taking a small performance hit.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog2
1 files changed, 2 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 44a45e209a..7dd6029d2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2014-10-02  Chris Metcalf  <cmetcalf@tilera.com>
 
+	* sysdeps/tile/memcmp.c: New file.
+
 	* sysdeps/unix/sysv/linux/tile/sysconf.c: New file.
 
 	* sysdeps/tile/tilegx/string-endian.h (STRSHIFT): New macro.