go/src
Keith Randall 5a75d6a08e cmd/compile: optimize non-empty-interface type conversions
When doing i.(T) for non-empty-interface i and concrete type T,
there's no need to read the type out of the itab. Just compare the
itab to the itab we expect for that interface/type pair.

Also optimize type switches by putting the type hash of the
concrete type in the itab. That way we don't need to load the
type pointer out of the itab.

Update #18492

Change-Id: I49e280a21e5687e771db5b8a56b685291ac168ce
Reviewed-on: https://go-review.googlesource.com/34810
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: David Chase <drchase@google.com>
2017-02-13 18:16:31 +00:00
..
archive time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
bufio
builtin
bytes bytes, strings: optimize Split* 2017-02-08 18:39:43 +00:00
cmd cmd/compile: optimize non-empty-interface type conversions 2017-02-13 18:16:31 +00:00
compress all: test adjustments for the iOS builder 2017-01-14 03:27:53 +00:00
container
context context: lazily initialize cancelCtx done channel 2017-02-01 20:08:41 +00:00
crypto crypto/sha512: Add AVX2 version for AMD64 2017-02-10 16:26:32 +00:00
database/sql database/sql: ensure driverConns are closed if not returned to pool 2017-02-10 13:28:32 +00:00
debug
encoding encoding/json: clarify documention for Unmarshal into a pointer. 2017-02-10 13:39:10 +00:00
errors
expvar expvar: make BenchmarkAdd{Same,Different} comparable to 1.8 2017-02-10 20:08:14 +00:00
flag
fmt fmt: undo clearflags in catchPanic after error message has been printed 2016-12-11 21:59:59 +00:00
go go/types: unsafe.Pointer is not an alias 2017-02-10 19:57:50 +00:00
hash hash/crc32: use sub-benchmarks 2017-02-08 17:17:08 +00:00
html
image image/png: reduce memory allocs encoding images by reusing buffers 2017-02-12 05:40:47 +00:00
index/suffixarray
internal cmd/trace: Record mark assists in execution traces 2017-02-10 18:03:42 +00:00
io io: fix test when MultiReader is inlined with -l=3 2017-02-02 18:56:20 +00:00
log
math cmd/{asm,internal/obj/s390x}, math: remove emulated float instructions 2017-02-10 16:11:25 +00:00
mime mime/multipart: allow boundary len <= 70 2017-02-01 21:06:49 +00:00
net net: use bytes.Equal instead of bytesEqual 2017-02-13 03:45:47 +00:00
os os: make Stdin.Stat() return ModeCharDevice if Stdin is console 2017-02-07 23:59:31 +00:00
path path/filepath: add test for directory junction walk 2017-02-12 23:33:01 +00:00
plugin plugin: remove unnecessary import "C" from example 2017-02-09 18:32:53 +00:00
reflect reflect: clear ptrToThis in Ptr when allocating result on heap 2017-02-10 17:22:07 +00:00
regexp
runtime cmd/compile: optimize non-empty-interface type conversions 2017-02-13 18:16:31 +00:00
sort sort: optimize average calculation in symMerge and doPivot. 2017-02-10 16:53:24 +00:00
strconv
strings strings: make parameters names less confusing 2017-02-11 19:55:21 +00:00
sync
syscall syscall: remove "use" function and calls from generated code. 2017-02-09 18:30:49 +00:00
testing testing: fix copy/paste in docs 2017-02-11 22:56:41 +00:00
text text/template: fix method lookup on addressable nil pointer 2017-02-09 14:58:40 +00:00
time time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
unicode
unsafe
vendor/golang_org/x vendor/golang.org/x/crypto/curve25519: avoid loss of R15 in -dynlink mode 2017-02-06 20:14:03 +00:00
Make.dist
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash buildall.bash: clarify target selection 2017-02-04 04:34:36 +00:00
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash
make.bash
make.bat
make.rc
naclmake.bash
nacltest.bash
race.bash
race.bat
run.bash
run.bat
run.rc