• Russ Cox's avatar
    8g: optimize byte mov · 23f6479b
    Russ Cox authored
    Rewrite MOVB with less expensive
    instruction when possible.
    
    Suggested by atomic symbol.
    
    benchmark                                        old ns/op    new ns/op    delta
    crc32.BenchmarkCrc32KB                               13066         3942  -69.83%
    crc64.BenchmarkCrc64KB                                8780         5949  -32.24%
    lzw.BenchmarkDecoder1e4                             771224       636538  -17.46%
    lzw.BenchmarkDecoder1e5                            7101218      6096634  -14.15%
    lzw.BenchmarkDecoder1e6                           69762020     60789400  -12.86%
    lzw.BenchmarkEncoder1e4                             707968       638812   -9.77%
    lzw.BenchmarkEncoder1e5                            6567122      5965552   -9.16%
    lzw.BenchmarkEncoder1e6                           65006000     58911680   -9.38%
    utf8_test.BenchmarkRuneCountTenASCIIChars              166          165   -0.60%
    utf8_test.BenchmarkRuneCountTenJapaneseChars           246          258   +4.88%
    utf8_test.BenchmarkEncodeASCIIRune                      13           10  -23.08%
    utf8_test.BenchmarkEncodeJapaneseRune                   37           16  -56.76%
    utf8_test.BenchmarkDecodeASCIIRune                      23           21   -8.70%
    utf8_test.BenchmarkDecodeJapaneseRune                   58           32  -44.83%
    
    R=ken2
    CC=golang-dev
    https://golang.org/cl/4381045
    23f6479b
peep.c 14.4 KB