|
cmd/6g: generate boolean values without jumps
[Depends on issue 8545 being fixed correctly; in the interim, use CL 125510043.]
5g and 8g (and 9g?) will be handled in subsequent CLs.
Top movers in stdlib benchmarks:
benchmark old ns/op new ns/op delta
BenchmarkNextafter64 7.72 5.86 -24.09%
BenchmarkSignbit 2.13 2.78 +30.52%
BenchmarkNextafter32 7.98 6.17 -22.68%
BenchmarkClientServer 110304 86169 -21.88%
BenchmarkContendedSemaphore 72.0 86.1 +19.58%
BenchmarkIndexByte32 6.94 8.28 +19.31%
BenchmarkIndexRuneFastPath 27.3 22.9 -16.12%
BenchmarkFinalizer 939372 1092025 +16.25%
BenchmarkTCP4OneShotTimeout 1123770 969409 -13.74%
BenchmarkUnquoteEasy 190 217 +14.21%
BenchmarkCompareBytesToNil 6.92 6.13 -11.42%
BenchmarkComplex128DivNisNaN 11.4 10.1 -11.40%
BenchmarkEqual16 7.18 6.38 -11.14%
BenchmarkEqual9 7.18 6.38 -11.14%
BenchmarkEqual15 7.18 6.41 -10.72%
BenchmarkSearchWrappers 162 145 -10.49%
BenchmarkEqual20 8.01 7.18 -10.36%
BenchmarkCompareBytesBigIdentical 5.32 4.79 -9.96%
BenchmarkInterfaceSmall 15.2 13.8 -9.21%
BenchmarkEqual32 8.81 8.00 -9.19%
BenchmarkTrimSpace 52.7 58.0 +10.06%
BenchmarkCompareBytesEmpty 5.87 5.34 -9.03%
BenchmarkMapStringKeysEight_64 21.8 23.9 +9.63%
BenchmarkMapStringKeysEight_16 22.8 20.8 -8.77%
BenchmarkMapStringKeysEight_1M 21.9 24.0 +9.59%
BenchmarkMapStringKeysEight_32 21.9 24.0 +9.59%
BenchmarkCompareBytesIdentical 5.85 5.34 -8.72%
BenchmarkAcosh 32.2 35.2 +9.32%
BenchmarkMin 3.20 2.93 -8.44%
BenchmarkIPString 2120 1954 -7.83%
BenchmarkChanSem 61.9 57.3 -7.43%
BenchmarkCompareBytesDifferentLength 6.91 6.40 -7.38%
BenchmarkCompareBytesEqual 6.91 6.40 -7.38%
BenchmarkCompareBytesSameLength 6.92 6.41 -7.37%
All regressions I've investigated are due to incidental code movement, generally due to generated code being shorter.
Full benchcmp output is at https://gist.github.com/josharian/e49e89916101c4f145fc.
The godoc binary is ~0.2% smaller after this CL.
Update issue 5729
|