• Daniel Morsing's avatar
    cmd/gc: Inline pointer sized T2I interface conversions · 8fd65b0e
    Daniel Morsing authored
    This CL also adds support for marking the likelyness of IF nodes in the AST being true. This feature is being used here to mark the slow path as unlikely.
    
    src/pkg/runtime:
    benchmark                  old ns/op    new ns/op    delta
    BenchmarkConvT2IUintptr           16            1  -91.63%
    
    test/bench/go1:
    benchmark                 old ns/op    new ns/op    delta
    BenchmarkBinaryTree17    5416917000   5461355000   +0.82%
    BenchmarkFannkuch11      3810355000   3842609000   +0.85%
    BenchmarkGobDecode         19950950     19855420   -0.48%
    BenchmarkGobEncode         11301220     11308530   +0.06%
    BenchmarkGzip             548119600    546869200   -0.23%
    BenchmarkGunzip           176145400    180208300   +2.31%
    BenchmarkJSONEncode        93117400     70163100  -24.65%
    BenchmarkJSONDecode       406626800    409999200   +0.83%
    BenchmarkMandelbrot200      6300992      6317866   +0.27%
    BenchmarkParse              7664396      7451625   -2.78%
    BenchmarkRevcomp         1189424000   1412332000  +18.74%
    BenchmarkTemplate         491308400    458654200   -6.65%
    
    benchmark                  old MB/s     new MB/s  speedup
    BenchmarkGobDecode            38.47        38.66    1.00x
    BenchmarkGobEncode            67.92        67.87    1.00x
    BenchmarkGzip                 35.40        35.48    1.00x
    BenchmarkGunzip              110.16       107.68    0.98x
    BenchmarkJSONEncode           20.84        27.66    1.33x
    BenchmarkJSONDecode            4.77         4.73    0.99x
    BenchmarkParse                 7.56         7.77    1.03x
    BenchmarkRevcomp             213.69       179.96    0.84x
    BenchmarkTemplate              3.95         4.23    1.07x
    
    R=rsc, dave, nigeltao
    CC=golang-dev
    https://golang.org/cl/6351090
    8fd65b0e
iface.c 13.1 KB