1
0
mirror of https://github.com/golang/go synced 2024-11-05 17:26:11 -07:00
go/misc/cgo/test
Ilya Tocar 91102bf723 runtime: use bytes.IndexByte in findnull
bytes.IndexByte is heavily optimized. Use it in findnull.
This is second attempt, similar to CL97523.
In this version we never call IndexByte on region of memory,
that crosses page boundary. A bit slower than CL97523,
but still fast:

name        old time/op  new time/op  delta
GoString-6   164ns ± 2%   118ns ± 0%  -28.00%  (p=0.000 n=10+6)

findnull is also used in gostringnocopy,
which is used in many hot spots in the runtime.

Fixes #23830

Change-Id: Id843dd4f65a34309d92bdd8df229e484d26b0cb2
Reviewed-on: https://go-review.googlesource.com/98015
Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-03-09 19:37:39 +00:00
..
gcc68255 all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8756 cmd/link, cmd/go: delay linking of mingwex and mingw32 until very end 2016-08-31 06:30:26 +00:00
issue8828 all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue9026 misc/cgo/test: fix freebsd test failure by moving test to its own package. 2014-11-03 13:41:03 -05:00
issue9400 runtime: use NOFRAME on mips and mips64 2018-02-12 21:41:32 +00:00
issue9510a cmd/link, cmd/go, cmd/dist: use copy of libgcc.a for internal linking 2015-11-14 18:56:17 +00:00
issue9510b cmd/link, cmd/go, cmd/dist: use copy of libgcc.a for internal linking 2015-11-14 18:56:17 +00:00
issue20266 go/build: make -I/-L options in cgo flags absolute 2017-06-13 18:36:04 +00:00
align.go test: Add the usual Copyright notice. 2012-01-24 14:48:15 -05:00
api.go cmd/cgo: only record typedef name for pointer to struct 2016-11-01 23:06:24 +00:00
backdoor.go misc/cgo/test: get rid of the backdoor package 2014-12-24 00:18:21 +00:00
basic.go runtime: use bytes.IndexByte in findnull 2018-03-09 19:37:39 +00:00
buildid_linux.go misc/cgo/test: avoid endless loop when we can't parse notes 2018-01-11 19:55:49 +00:00
callback_c_gc.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback_c_gccgo.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
callback.go cmd/cgo: always use a function literal for pointer checking 2016-10-19 21:20:50 +00:00
cflags.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
cgo_linux_test.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
cgo_stubs_android_test.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
cgo_test.go runtime: use bytes.IndexByte in findnull 2018-03-09 19:37:39 +00:00
cgo_thread_lock.go misc/cgo/test: add test that gccgo fails 2016-10-13 00:03:57 +00:00
cgo_unix_test.go runtime/cgo: retry pthread_create on EAGAIN 2016-12-05 18:46:18 +00:00
checkconst.go cmd/cgo: preserve original call arguments when pointer checking 2016-10-21 20:46:20 +00:00
complex.go cmd/compile, cmd/cgo: align complex{64,128} like GCC 2016-10-05 17:44:27 +00:00
cthread_unix.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
cthread_windows.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
cthread.go misc/cgo/test,cmd/dist: enable (more) Cgo tests on iOS 2016-06-02 10:09:12 +00:00
duplicate_symbol.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
env.go misc/cgo/test: fix go vet warnings 2015-10-13 17:53:20 +00:00
exports.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
fpvar.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
gcc68255.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
helpers.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1222.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1328.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1560.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue1635.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue2462.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3250.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3250w.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3261.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3729.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3729w.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3741.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue3775.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue3945.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4029.c misc/cgo/test: get uintptr, not pointer, from dlopen 2018-02-02 18:42:10 +00:00
issue4029.go misc/cgo/test: get uintptr, not pointer, from dlopen 2018-02-02 18:42:10 +00:00
issue4029w.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4054a.go cgo: process DWARF info even when debug data is used for value 2012-09-20 13:20:33 +10:00
issue4054b.go cgo: process DWARF info even when debug data is used for value 2012-09-20 13:20:33 +10:00
issue4273.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4273b.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4339.c misc/cgo/test: test of issue 4339 2013-09-11 09:56:38 -04:00
issue4339.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4339.h misc/cgo/test: test of issue 4339 2013-09-11 09:56:38 -04:00
issue4417.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue4857.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5227.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5242.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5337.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5337w.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5548_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5548.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5603.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5740.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5740a.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5740b.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue5986.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6128.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6390.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6472.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6506.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6612.go cmd/cgo: support floating point #define macros 2017-04-07 21:09:44 +00:00
issue6833_c.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6833.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue6907.go cmd/cgo: permit passing string values directly between Go and C 2017-11-15 03:36:54 +00:00
issue6907export_c.c cmd/cgo: permit passing string values directly between Go and C 2017-11-15 03:36:54 +00:00
issue6907export.go cmd/cgo: permit passing string values directly between Go and C 2017-11-15 03:36:54 +00:00
issue6997_linux.c misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue6997_linux.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue7234_test.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue7560.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue7665.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue7786.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue7978.go misc/cgo/test: set the traceback level instead of failing the test 2017-09-13 02:53:11 +00:00
issue8092.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8148.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8331.h all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8331a.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8331b.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8428.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8441.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8517_windows.c misc/cgo/test: add Test8517 2014-10-09 16:10:51 +11:00
issue8517_windows.go misc/cgo/test: add Test8517 2014-10-09 16:10:51 +11:00
issue8517.go misc/cgo/test: add Test8517 2014-10-09 16:10:51 +11:00
issue8694.go misc/cgo/test,cmd/dist: enable (most) Cgo tests on Android 2016-06-01 22:06:51 +00:00
issue8756.go cmd/link, cmd/go: delay linking of mingwex and mingw32 until very end 2016-08-31 06:30:26 +00:00
issue8811.c all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8811.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue8828.go cmd/go: add '_go_' suffix to go files compiled by gccgo to avoid naming conflicts 2014-10-15 13:13:37 -07:00
issue8945.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue9026.go misc/cgo/test: fix freebsd test failure by moving test to its own package. 2014-11-03 13:41:03 -05:00
issue9400_linux.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue9510.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue9557.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue10303.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue11925.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue12030.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue13402.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue13930.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue14838.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
issue17065.go misc/cgo/test: add skipped test for issue 17065 2016-09-11 20:43:11 +00:00
issue17537.go cmd/cgo: don't strip qualifiers from C void* pointer 2016-12-14 00:59:38 +00:00
issue18126.go cmd/cgo: fix cgo checking when fetching errno value 2016-12-01 02:13:50 +00:00
issue18146.go misc/cgo/test: pass current environment to syscall.Exec 2017-01-20 21:12:54 +00:00
issue18720.go cmd/cgo: support niladic function-like macros 2017-08-30 18:28:58 +00:00
issue20129.go cmd/cgo: unwrap typedef-chains before type checking 2017-06-27 23:02:34 +00:00
issue20266.go go/build: make -I/-L options in cgo flags absolute 2017-06-13 18:36:04 +00:00
issue20369.go cmd/cgo: support large unsigned macros 2017-05-17 14:42:29 +00:00
issue20910.c cmd/cgo: unify cgo output for gc and gccgo 2017-08-16 21:57:56 +00:00
issue20910.go cmd/cgo: unify cgo output for gc and gccgo 2017-08-16 21:57:56 +00:00
issue21668.go cmd/cgo: avoid using common names for sniffing 2017-08-29 00:42:34 +00:00
issue21708.go cmd/cgo: support large unsigned macro again 2017-09-01 00:42:21 +00:00
issue21809.go go/printer: fix formatting of three-index slice expression 2017-10-03 16:16:30 +00:00
issue21897.go cmd/cgo: special case C ptr types to use uintptr 2017-11-17 22:11:03 +00:00
issue21897b.go cmd/cgo: special case C ptr types to use uintptr 2017-11-17 22:11:03 +00:00
issue22958.go cmd/cgo: for C bitfields use only valid Go integer types 2017-12-01 23:50:23 +00:00
issue24206_generic.go runtime: use bytes.IndexByte in findnull 2018-03-09 19:37:39 +00:00
issue24206.go runtime: use bytes.IndexByte in findnull 2018-03-09 19:37:39 +00:00
setgid_linux.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
sigaltstack.go misc/cgo/test: fix test when using GCC 7 2017-01-20 21:12:19 +00:00
sigprocmask.c runtime: don't always unblock all signals on dragonfly, freebsd and openbsd 2016-04-15 21:20:45 +00:00
sigprocmask.go runtime: don't always unblock all signals on dragonfly, freebsd and openbsd 2016-04-15 21:20:45 +00:00
test22906.go cmd/cgo: make JNI's jobject type map to uintptr in Go 2017-12-08 16:13:14 +00:00