]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: make loop guard+rotate conditional on GOEXPERIMENT
authorDavid Chase <drchase@google.com>
Wed, 21 Jun 2017 21:19:24 +0000 (17:19 -0400)
committerDavid Chase <drchase@google.com>
Wed, 21 Jun 2017 22:07:33 +0000 (22:07 +0000)
commit0b6fbaae6ec4218fc35d8a6f4415ae8f88198301
tree190fe7f95117686fd55fb86e1d73c5554fe53023
parentc4e0e816531b679b3e6581e469279df813a9ea3d
cmd/compile: make loop guard+rotate conditional on GOEXPERIMENT

Loops of the form "for i,e := range" needed to have their
condition rotated to the "bottom" for the preemptible loops
GOEXPERIMENT, but this caused a performance regression
because it degraded bounds check removal.  For now, make
the loop rotation/guarding conditional on the experiment.

Fixes #20711.
Updates #10958.

Change-Id: Icfba14cb3b13a910c349df8f84838cf4d9d20cf6
Reviewed-on: https://go-review.googlesource.com/46410
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/range.go
test/loopbce.go