]> Cypherpunks repositories - gostls13.git/commit
8g: optimize byte mov
authorRuss Cox <rsc@golang.org>
Fri, 8 Apr 2011 17:53:59 +0000 (13:53 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 8 Apr 2011 17:53:59 +0000 (13:53 -0400)
commit23f6479be645761c5ba7ba92cf062bbc6470065d
treeb04cf6a7de466d9cbb5e755e6b9b20b291af4fb9
parente7c4a6dfcaf88644f08fbc6ddc5904f4857aafb8
8g: optimize byte mov

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
src/cmd/8g/peep.c