Descriptioncmd/gc: inline copy in frontend to call memmove directly.
A new node type OSPTR is added to refer to the data pointer of
strings and slices in a simple way during walk(). It will be
useful for future work on simplification of slice arithmetic.
benchmark old ns/op new ns/op delta
BenchmarkCopy1Byte 9 8 -13.98%
BenchmarkCopy2Byte 14 8 -40.49%
BenchmarkCopy4Byte 13 8 -35.04%
BenchmarkCopy8Byte 13 8 -37.10%
BenchmarkCopy12Byte 14 12 -15.38%
BenchmarkCopy16Byte 14 12 -17.24%
BenchmarkCopy32Byte 19 14 -27.32%
BenchmarkCopy128Byte 31 26 -15.29%
BenchmarkCopy1024Byte 100 92 -7.50%
BenchmarkCopy1String 10 7 -28.99%
BenchmarkCopy2String 10 7 -28.06%
BenchmarkCopy4String 10 8 -22.69%
BenchmarkCopy8String 10 8 -23.30%
BenchmarkCopy12String 11 11 -5.88%
BenchmarkCopy16String 11 11 -5.08%
BenchmarkCopy32String 15 14 -6.58%
BenchmarkCopy128String 28 25 -10.60%
BenchmarkCopy1024String 95 95 +0.53%
Patch Set 1 #Patch Set 2 : diff -r 8223559e536b https://go.googlecode.com/hg/ #Patch Set 3 : diff -r 8223559e536b https://go.googlecode.com/hg/ #Patch Set 4 : diff -r 0d28fd55e721 https://go.googlecode.com/hg/ #
Total comments: 5
Patch Set 5 : diff -r 9b8afda16f02 https://go.googlecode.com/hg/ #
Total comments: 15
Patch Set 6 : diff -r 3338bbc9c09b https://go.googlecode.com/hg/ #Patch Set 7 : diff -r c47375e68297 https://go.googlecode.com/hg/ #
MessagesTotal messages: 36
|