go/src/cmd
Cholerae Hu a6755fc0de cmd/compile: check indirect connection between if block and phi block in addLocalInductiveFacts
CL 244579 added guard clauses to prevent a faulty state that was
possible under the incorrect logic of the uniquePred loop in
addLocalInductiveFacts. That faulty state was still making the
intended optimization, but not for the correct reason.
Removing the faulty state also removed the overly permissive application
of the optimization, and therefore made these two tests fail.
We disabled the tests of this optimization in CL 244579 to allow us to
quickly apply the fix in the CL. This CL now corrects the logic of the
uniquePred loop in order to apply the optimization correctly.

The comment above the uniquePred loop says that it will follow unique
predecessors until it reaches a join point. Without updating the child
node on each iteration, it cannot follow the chain of unique
predecessors more than one step. Adding the update to the child node
on each iteration of the loop allows the logic to follow the chain of
unique predecessors until reaching a join point (because a non-unique
predecessor will signify a join point).

Updates #40502.

Change-Id: I23d8367046a2ab3ce4be969631f9ba15dc533e6c
Reviewed-on: https://go-review.googlesource.com/c/go/+/246157
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Trust: Dmitri Shuralyov <dmitshur@golang.org>
2020-11-07 07:33:23 +00:00
..
addr2line cmd/addr2line: don't assume that GOROOT_FINAL is clean 2020-09-17 19:25:09 +00:00
api io/fs: move FileInfo, FileMode, PathError, ErrInvalid, ... from os to io/fs 2020-10-20 02:32:41 +00:00
asm cmd/asm: fix rlwnm reg,reg,const,reg encoding on ppc64 2020-11-04 21:26:23 +00:00
buildid cmd/buildid: move and reuse duplicated HashToString code to cmd/internal/buildid/buildid 2020-10-28 21:52:53 +00:00
cgo cmd/cgo: add -trimpath flag allowing paths to be rewritten in outputs 2020-10-31 00:35:18 +00:00
compile cmd/compile: check indirect connection between if block and phi block in addLocalInductiveFacts 2020-11-07 07:33:23 +00:00
cover all: replace Replace(..., -1) with ReplaceAll(...) 2020-08-17 04:07:23 +00:00
dist cmd/dist: remove openbsd/mips64 from incomplete ports 2020-11-06 07:55:52 +00:00
doc all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
fix all: update references to symbols moved from io/ioutil to io 2020-10-20 18:41:18 +00:00
go cmd/go: account for flags when parsing regexps in TestScript 2020-11-05 19:33:55 +00:00
gofmt all: update references to symbols moved from io/ioutil to io 2020-10-20 18:41:18 +00:00
internal cmd/compile: optimize shift pairs and masks on s390x 2020-11-06 10:45:31 +00:00
link cmd/link: report error if builtin referenced but not defined 2020-11-05 22:14:40 +00:00
nm cmd/dist,cmd/go,runtime: add support for cgo on linux/riscv64 2020-11-03 12:59:51 +00:00
objdump cmd/objdump: skip TestDisasmExtld on AIX 2020-10-16 20:51:49 +00:00
pack all: update references to symbols moved from os to io/fs 2020-10-20 02:32:42 +00:00
pprof all: update references to symbols moved from io/ioutil to io 2020-10-20 18:41:18 +00:00
test2json cmd/test2json: do not emit a final Action if the result is not known 2020-08-17 19:43:21 +00:00
trace all: update references to symbols moved from io/ioutil to io 2020-10-20 18:41:18 +00:00
vendor all: update dependency on golang.org/x/sys and regenerate Windows syscalls 2020-11-02 15:41:00 +00:00
vet cmd/vet: bring in pass to catch invalid uses of testing.T in goroutines 2020-11-01 01:58:43 +00:00
README.vendor
go.mod all: update dependency on golang.org/x/sys and regenerate Windows syscalls 2020-11-02 15:41:00 +00:00
go.sum all: update dependency on golang.org/x/sys and regenerate Windows syscalls 2020-11-02 15:41:00 +00:00

README.vendor

See src/README.vendor for information on loading vendored packages
and updating the vendor directory.