]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: support new fully-inst types referenced during inlining
authorDan Scales <danscales@google.com>
Sun, 19 Sep 2021 16:13:47 +0000 (09:13 -0700)
committerDan Scales <danscales@google.com>
Fri, 15 Oct 2021 16:57:36 +0000 (16:57 +0000)
commita80e53ec43d6ab925bb34d62dd8597a4227af363
tree73966d380c51f3b415ef479d62ea54e2793a1467
parentfad4a16fd43f6a72b6917eff656be27522809074
cmd/compile: support new fully-inst types referenced during inlining

Modify the phase for creating needed function/method instantiations and
modifying functions to use those instantiations, so that the phase is
self-contained and can be called again after inlining. This is to deal
with the issue that inlining may reveal new fully-instantiated types
whose methods must be instantiated.

With this change, we have an extra phase for instantiation after
inlining, to take care of the new fully-instantiated types that have
shown up during inlining. We call inline.InlineCalls() for any new
instantiated functions that are created.

Change-Id: I4ddf0b1907e5f1f7d45891db7876455a99381133
Reviewed-on: https://go-review.googlesource.com/c/go/+/352870
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Trust: Alexander Rakoczy <alex@golang.org>
src/cmd/compile/internal/gc/main.go
src/cmd/compile/internal/noder/irgen.go
src/cmd/compile/internal/noder/stencil.go
src/cmd/compile/internal/typecheck/subr.go
test/typeparam/geninline.dir/a.go [new file with mode: 0644]
test/typeparam/geninline.dir/main.go [new file with mode: 0644]
test/typeparam/geninline.go [new file with mode: 0644]