]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: use cheaper implementation of oneBit
authorJosh Bleecher Snyder <josharian@gmail.com>
Mon, 20 Apr 2020 22:40:38 +0000 (15:40 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Tue, 21 Apr 2020 05:56:02 +0000 (05:56 +0000)
commit4974ac6874a1fdeb50a025e84f03bb354a400ea7
tree651e8aecb35c64b3e299ee8d41ecbedfca50093f
parent0eb694e9c217c051cd8cc18258bf593d0be7fb8d
cmd/compile: use cheaper implementation of oneBit

This is the second attempt. The first attempt was CL 229127,
which got rolled back by CL 229177, because it caused
an infinite loop during compilation on some platforms.
I didn't notice that the trybots hadn't completed when I submitted; mea culpa.

The bug was that we were checking x&(x-1)==0, which is also true of 0,
which does not have exactly one bit set.
This caused an infinite rewrite rule loop.

Updates #38547

file    before    after     Δ       %
compile 19678112  19669808  -8304   -0.042%
total   113143160 113134856 -8304   -0.007%

Change-Id: I417a4f806e1ba61277e31bab2e57dd3f1ac7e835
Reviewed-on: https://go-review.googlesource.com/c/go/+/229197
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Munday <mike.munday@ibm.com>
src/cmd/compile/internal/ssa/rewrite.go