Skip to content

Commit

Permalink
cmd/compile: remove badgerbadgerbadger optimization
Browse files Browse the repository at this point in the history
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 <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
Reviewed-by: Brad Fitzpatrick <[email protected]>
  • Loading branch information
josharian committed Feb 26, 2019
1 parent d6311ff commit c63dc6d
Showing 1 changed file with 0 additions and 6 deletions.
6 changes: 0 additions & 6 deletions src/cmd/compile/internal/gc/walk.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down

0 comments on commit c63dc6d

Please sign in to comment.