]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: implement loop BCE in prove
authorGiovanni Bajo <rasky@develer.com>
Sun, 1 Apr 2018 23:57:49 +0000 (01:57 +0200)
committerGiovanni Bajo <rasky@develer.com>
Sun, 29 Apr 2018 09:37:35 +0000 (09:37 +0000)
commit7ec25d0acfed3f40fe634be518f0857704e5b642
tree91b61b67232ce3d3bee6c94b24fbda21a0cdc3e7
parent29162ec9a7d4ee08a558729236cd9bf50febee09
cmd/compile: implement loop BCE in prove

Reuse findIndVar to discover induction variables, and then
register the facts we know about them into the facts table
when entering the loop block.

Moreover, handle "x+delta > w" while updating the facts table,
to be able to prove accesses to slices with constant offsets
such as slice[i-10].

Change-Id: I2a63d050ed58258136d54712ac7015b25c893d71
Reviewed-on: https://go-review.googlesource.com/104038
Run-TryBot: Giovanni Bajo <rasky@develer.com>
Reviewed-by: David Chase <drchase@google.com>
src/cmd/compile/fmt_test.go
src/cmd/compile/internal/ssa/loopbce.go
src/cmd/compile/internal/ssa/prove.go
test/loopbce.go
test/prove.go