• Josh Bleecher Snyder's avatar
    cmd/compile: inline x, ok := y.(T) where T is a scalar · 615a52b9
    Josh Bleecher Snyder authored
    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: 's avatarKeith Randall <khr@golang.org>
    615a52b9
Name
Last commit
Last update
..
embed1.dir Loading commit data...
private.dir Loading commit data...
recursive1.dir Loading commit data...
assertinline.go Loading commit data...
bigdata.go Loading commit data...
convert.go Loading commit data...
convert1.go Loading commit data...
convert2.go Loading commit data...
embed.go Loading commit data...
embed1.go Loading commit data...
embed2.go Loading commit data...
explicit.go Loading commit data...
fail.go Loading commit data...
fake.go Loading commit data...
noeq.go Loading commit data...
pointer.go Loading commit data...
private.go Loading commit data...
receiver.go Loading commit data...
receiver1.go Loading commit data...
recursive.go Loading commit data...
recursive1.go Loading commit data...
returntype.go Loading commit data...
struct.go Loading commit data...