1
0
mirror of https://github.com/golang/go synced 2024-10-04 13:21:22 -06:00
go/src
Ilya Tocar 5cf281a9b7 runtime: optimize duffcopy on amd64
Use movups to copy 16 bytes at a time.
Results (haswell):

name            old time/op  new time/op  delta
CopyFat8-48     0.62ns ± 3%  0.63ns ± 3%     ~     (p=0.535 n=20+20)
CopyFat12-48    0.92ns ± 2%  0.93ns ± 3%     ~     (p=0.594 n=17+18)
CopyFat16-48    1.23ns ± 2%  1.23ns ± 2%     ~     (p=0.839 n=20+19)
CopyFat24-48    1.85ns ± 2%  1.84ns ± 0%   -0.48%  (p=0.014 n=19+20)
CopyFat32-48    2.45ns ± 0%  2.45ns ± 1%     ~     (p=1.000 n=16+16)
CopyFat64-48    3.30ns ± 2%  2.14ns ± 1%  -35.00%  (p=0.000 n=20+18)
CopyFat128-48   6.05ns ± 0%  3.98ns ± 0%  -34.22%  (p=0.000 n=18+17)
CopyFat256-48   11.9ns ± 3%   7.7ns ± 0%  -35.87%  (p=0.000 n=20+17)
CopyFat512-48   23.0ns ± 2%  15.1ns ± 2%  -34.52%  (p=0.000 n=20+18)
CopyFat1024-48  44.8ns ± 1%  29.8ns ± 2%  -33.48%  (p=0.000 n=17+19)

Change-Id: I8a78773c656d400726a020894461e00c59f896bf
Reviewed-on: https://go-review.googlesource.com/14836
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
2015-09-22 15:02:37 +00:00
..
archive archive/zip: fixes unexpected EOF when reading archive 2015-09-11 00:32:59 +00:00
bufio bufio: fix overflow calculation in Scan 2015-09-20 04:46:08 +00:00
builtin builtin: remove errant space in hyphenated adjective phrase 2015-06-28 21:41:38 +00:00
bytes bytes: improve Compare function on amd64 for large byte arrays 2015-08-26 03:52:20 +00:00
cmd runtime: optimize duffcopy on amd64 2015-09-22 15:02:37 +00:00
compress compress/lzw: tidy up some flush calls. 2015-09-09 01:45:00 +00:00
container
crypto crypto/x509: return err if marshalPublicKey fails to marshal an rsa public key 2015-09-18 21:48:10 +00:00
database/sql database/sql: fix typo 2015-09-14 00:20:55 +00:00
debug debug/dwarf: add test for split DWARF 2015-09-15 17:57:56 +00:00
encoding encoding/json: scanner: use byte, more consistent 2015-09-21 01:55:52 +00:00
errors
expvar
flag flag: add comment stating that Set is called in sequence across the command line 2015-07-16 05:33:47 +00:00
fmt fmt: allow any type in a format's width argument 2015-09-10 20:53:22 +00:00
go go/printer: avoid stomping on err before checking it 2015-09-21 19:29:26 +00:00
hash hash/crc32: add AMD64 optimized IEEE CRC calculation 2015-09-16 15:42:42 +00:00
html text/template: export isTrue 2015-09-17 23:08:33 +00:00
image image/png: integer underflow when decoding 2015-09-21 23:09:22 +00:00
index/suffixarray
internal runtime,internal/trace: map/slice literals janitoring 2015-09-11 14:03:43 +00:00
io io: add WriteString support to MultiWriter 2015-09-01 04:00:12 +00:00
log
math math/big: add test cases for min/max exponent values 2015-09-22 07:59:02 +00:00
mime mime: fix docs for WordDecoder.Decode 2015-09-10 21:50:17 +00:00
net net: check 'ok' return in dnsmsg when initially packing rr.Header() 2015-09-20 02:55:16 +00:00
os os: touch up the EINTR retry loop in OpenFile 2015-09-17 14:49:30 +00:00
path all: fix some vet-caught formatting errors, mostly but not only in tests 2015-08-21 05:37:36 +00:00
reflect runtime: on map update, don't overwrite key if we don't need to. 2015-09-09 21:06:49 +00:00
regexp
runtime runtime: optimize duffcopy on amd64 2015-09-22 15:02:37 +00:00
sort sort: Fix typo in Stable() comment 2015-08-17 06:58:16 +00:00
strconv strconv: fix comment 2015-09-10 21:31:07 +00:00
strings all: link to https for golang subdomains too 2015-07-12 04:42:40 +00:00
sync runtime, sync/atomic: add memory barriers in arm cas routines 2015-07-30 20:11:11 +00:00
syscall syscall: implement getwd on Solaris 2015-09-09 19:58:33 +00:00
testing testing/quick: terminate for arbitrary recursive types 2015-08-29 19:23:37 +00:00
text text/template: export isTrue 2015-09-17 23:08:33 +00:00
time time: allow any one- or two-digit day of the month when parsing. 2015-09-10 20:27:53 +00:00
unicode unicode: include rune 0 in RangeTables. 2015-08-24 15:05:48 +00:00
unsafe
all.bash
all.bat
all.rc
androidtest.bash androidtest.bash: robust cleanup in case of failure. 2015-07-17 21:12:12 +00:00
bootstrap.bash build: Fix bootstrap.bash for official source tarballs 2015-09-01 19:52:59 +00:00
buildall.bash
clean.bash build: clean current tree in clean.bash 2015-08-05 19:36:15 +00:00
clean.bat
clean.rc
iostest.bash
make.bash make.bash: abort if $GOROOT_BOOTSTRAP == $GOROOT 2015-08-24 03:04:52 +00:00
make.bat
Make.dist
make.rc
nacltest.bash
race.bash all: link to https instead of http 2015-07-11 14:36:33 +00:00
race.bat all: link to https instead of http 2015-07-11 14:36:33 +00:00
run.bash
run.bat
run.rc