mirror of
https://github.com/golang/go.git
synced 2025-10-19 11:03:18 +00:00
cmd/compile: run fmt on ssa
prove.go used to make my editor and precomit checks very unhappy. Change-Id: I25f7ffa2191480bc1b4f91fa91ccf3e4768045fa Reviewed-on: https://go-review.googlesource.com/c/go/+/685818 Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
86b5ba7310
commit
a5bda585d5
1 changed files with 12 additions and 5 deletions
|
@ -1917,15 +1917,22 @@ func (ft *factsTable) flowLimit(v *Value) bool {
|
|||
|
||||
// See if we can get any facts because v is the result of signed mod by a constant.
|
||||
// The mod operation has already been rewritten, so we have to try and reconstruct it.
|
||||
// x % d
|
||||
//
|
||||
// x % d
|
||||
//
|
||||
// is rewritten as
|
||||
// x - (x / d) * d
|
||||
//
|
||||
// x - (x / d) * d
|
||||
//
|
||||
// furthermore, the divide itself gets rewritten. If d is a power of 2 (d == 1<<k), we do
|
||||
// (x / d) * d = ((x + adj) >> k) << k
|
||||
// = (x + adj) & (-1<<k)
|
||||
//
|
||||
// (x / d) * d = ((x + adj) >> k) << k
|
||||
// = (x + adj) & (-1<<k)
|
||||
//
|
||||
// with adj being an adjustment in case x is negative (see below).
|
||||
// if d is not a power of 2, we do
|
||||
// x / d = ... TODO ...
|
||||
//
|
||||
// x / d = ... TODO ...
|
||||
func (ft *factsTable) detectSignedMod(v *Value) bool {
|
||||
if ft.detectSignedModByPowerOfTwo(v) {
|
||||
return true
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue