]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: don't addLocalInductiveFacts if there is no direct edge from if block...
authorCholerae Hu <choleraehyq@gmail.com>
Fri, 24 Jul 2020 03:00:36 +0000 (11:00 +0800)
committerKeith Randall <khr@golang.org>
Thu, 30 Jul 2020 17:23:11 +0000 (17:23 +0000)
commit7f8608047644ca34bad1728d5e2dbef041a1b3f2
tree119b49c4c3855bbdfef87f3c45b974a5fca3bc08
parent54e75e8f9db09868db61f97edb98ace3aab7234f
cmd/compile: don't addLocalInductiveFacts if there is no direct edge from if block to phi block

Currently in addLocalInductiveFacts, we only check whether
direct edge from if block to phi block exists. If not, the
following logic will treat the phi block as the first successor,
which is wrong.

This patch makes prove pass more conservative, so we disable
some cases in test/prove.go. We will do some optimization in
the following CL and enable these cases then.

Fixes #40367.

Change-Id: I27cf0248f3a82312a6f7dabe11c79a1a34cf5412
Reviewed-on: https://go-review.googlesource.com/c/go/+/244579
Reviewed-by: Zach Jones <zachj1@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/compile/internal/ssa/prove.go
test/fixedbugs/issue40367.go [new file with mode: 0644]
test/prove.go