]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: generate late-lowering static calls
authorDavid Chase <drchase@google.com>
Wed, 15 Jul 2020 13:07:00 +0000 (09:07 -0400)
committerDavid Chase <drchase@google.com>
Fri, 18 Sep 2020 16:15:57 +0000 (16:15 +0000)
commit65dfe4a772a4bc612219d93886e5c07290785ee6
tree6fed706b26a778ac91a94b26bcc74055d8c31bb7
parent44c0586931344c2c218b8074972b18fd5ff440bc
cmd/compile: generate late-lowering static calls

This is testing for the limited case of zero or one SSA-able results.

One regression is that the later expansion of "Dereference" into
Move into argument slots thwarts the
  MOVE A -> B, MOVE B -> C
replaced-by
  MOVE A -> B, MOVE A -> C
optimization; the second move is written instead as a Dereference at the
phase where the optimization occurs, and because the target of the
dereference is not visible in the dereference, it's not possible to verify
that A and B or A and C don't overlap in some peculiar way (and for results
fed to args, they can).

Regression is repaired in a later CL by changing when calls are expanded.

Change-Id: Ia0f48a9d483d5a54a99657a24b12b25b8edde55f
Reviewed-on: https://go-review.googlesource.com/c/go/+/242782
Trust: David Chase <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/ssa/op.go
src/cmd/compile/internal/types/type.go