• Josh Bleecher Snyder's avatar
    cmd/internal/gc, runtime: speed up some cases of _, ok := i.(T) · 25e793d7
    Josh Bleecher Snyder authored
    Some type assertions of the form _, ok := i.(T) allow efficient inlining.
    Such type assertions commonly show up in type switches.
    For example, with this optimization, using 6g, the length of
    encoding/binary's intDataSize function shrinks from 2224 to 1728 bytes (-22%).
    
    benchmark                    old ns/op     new ns/op     delta
    BenchmarkAssertI2E2Blank     4.67          0.82          -82.44%
    BenchmarkAssertE2T2Blank     4.38          0.83          -81.05%
    BenchmarkAssertE2E2Blank     3.88          0.83          -78.61%
    BenchmarkAssertE2E2          14.2          14.4          +1.41%
    BenchmarkAssertE2T2          10.3          10.4          +0.97%
    BenchmarkAssertI2E2          13.4          13.3          -0.75%
    
    Change-Id: Ie9798c3e85432bb8e0f2c723afc376e233639df7
    Reviewed-on: https://go-review.googlesource.com/7697Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    25e793d7
iface_test.go 3.2 KB