• 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
cgen.go 80.6 KB