From: Josh Bleecher Snyder Date: Tue, 26 Feb 2019 19:56:19 +0000 (-0800) Subject: cmd/compile: remove badgerbadgerbadger optimization X-Git-Tag: go1.13beta1~1388 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c63dc6d45956ba471cc88658df4674df3f679a70;p=gostls13.git cmd/compile: remove badgerbadgerbadger optimization As discussed in #29242, this optimization is for a bash-ism. No one writes Go code like this. In this repo, it triggers only in test/fixedbugs/bug425.go and that appears to be accidental. Fixes #29242 Change-Id: I257e6ecc73f24680f7282c6ab28729de4e8b27af Reviewed-on: https://go-review.googlesource.com/c/163728 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index 9bfdaffa62..57bf8a1e0e 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -3342,12 +3342,6 @@ func walkcompareInterface(n *Node, init *Nodes) *Node { } func walkcompareString(n *Node, init *Nodes) *Node { - // s + "badgerbadgerbadger" == "badgerbadgerbadger" - if (n.Op == OEQ || n.Op == ONE) && Isconst(n.Right, CTSTR) && n.Left.Op == OADDSTR && n.Left.List.Len() == 2 && Isconst(n.Left.List.Second(), CTSTR) && strlit(n.Right) == strlit(n.Left.List.Second()) { - r := nod(n.Op, nod(OLEN, n.Left.List.First(), nil), nodintconst(0)) - return finishcompare(n, r, init) - } - // Rewrite comparisons to short constant strings as length+byte-wise comparisons. var cs, ncs *Node // const string, non-const string switch {