1
0
mirror of https://github.com/golang/go synced 2024-11-14 07:00:21 -07:00
go/test/interface
Josh Bleecher Snyder 615a52b95b cmd/compile: inline x, ok := y.(T) where T is a scalar
When T is a scalar, there are no runtime calls
required, which makes this a clear win.

encoding/binary:
WriteInts-8                958ns ± 3%     864ns ± 2%   -9.80%  (p=0.000 n=15+15)

This also considerably shrinks a core fmt
routine:

Before: "".(*pp).printArg t=1 size=3952 args=0x20 locals=0xf0
After:  "".(*pp).printArg t=1 size=2624 args=0x20 locals=0x98

Unfortunately, I find it very hard to get stable
numbers out of the fmt benchmarks due to thermal scaling.

Change-Id: I1278006b030253bf8e48dc7631d18985cdaa143d
Reviewed-on: https://go-review.googlesource.com/26659
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
2016-08-17 01:12:01 +00:00
..
embed1.dir test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
private.dir test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
recursive1.dir all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
assertinline.go cmd/compile: inline x, ok := y.(T) where T is a scalar 2016-08-17 01:12:01 +00:00
bigdata.go test/interface: document tests 2012-02-19 17:33:41 +11:00
convert1.go test/interface: document tests 2012-02-19 17:33:41 +11:00
convert2.go test/interface: document tests 2012-02-19 17:33:41 +11:00
convert.go test/interface: document tests 2012-02-19 17:33:41 +11:00
embed1.go test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
embed2.go cmd/internal/gc: improve "type *X has no field or method M" message 2015-05-07 16:21:57 +00:00
embed.go test/interface: document tests 2012-02-19 17:33:41 +11:00
explicit.go cmd/gc: blank methods are not permitted in interface types 2014-10-15 09:55:13 -07:00
fail.go cmd/gc: blank methods are not permitted in interface types 2014-10-15 09:55:13 -07:00
fake.go test/interface: document tests 2012-02-19 17:33:41 +11:00
noeq.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
pointer.go test/interface: document tests 2012-02-19 17:33:41 +11:00
private.go test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
receiver1.go test/interface: document tests 2012-02-19 17:33:41 +11:00
receiver.go test/interface: document tests 2012-02-19 17:33:41 +11:00
recursive1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
recursive.go test: use testlib (another bunch). 2012-02-18 22:15:42 +01:00
returntype.go test/interface: document tests 2012-02-19 17:33:41 +11:00
struct.go test/interface: document tests 2012-02-19 17:33:41 +11:00