mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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>
This commit is contained in:
parent
074d6a649c
commit
615a52b95b
10 changed files with 98 additions and 14 deletions
|
|
@ -143,6 +143,7 @@ var opnames = []string{
|
|||
OINLCALL: "INLCALL",
|
||||
OEFACE: "EFACE",
|
||||
OITAB: "ITAB",
|
||||
OIDATA: "IDATA",
|
||||
OSPTR: "SPTR",
|
||||
OCLOSUREVAR: "CLOSUREVAR",
|
||||
OCFUNC: "CFUNC",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue