]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile: allowing inlining of functions with OCALLPART
authorDan Scales <danscales@google.com>
Mon, 19 Oct 2020 20:09:55 +0000 (13:09 -0700)
committerDan Scales <danscales@google.com>
Tue, 20 Oct 2020 00:07:42 +0000 (00:07 +0000)
commit8fe372c7b36b4d078c871a26e10b427c41275ecd
treefe6d3297c664404c2ee2347dba10b34d3249624c
parent2754d911641c3a4569f48d61c541fc2ac395d23b
cmd/compile:  allowing inlining of functions with OCALLPART

OCALLPART is exported in its original form, which is as an OXDOT.

The body of the method value wrapper created in makepartialcall() was
not being typechecked, and that was causing a problem during escape
analysis, so I added code to typecheck the body.

The go executable got slightly bigger with this change (13598111 ->
13598905), because of extra exported methods with OCALLPART (I
believe), while the text size got slightly smaller (9686964 ->
9686643).

This is mainly part of the work to make sure all function bodies can
be exported (for purposes of generics), but might as well fix the
OCALLPART inlining bug as well.

Fixes #18493

Change-Id: If7aa055ff78ed7a6330c6a1e22f836ec567d04fd
Reviewed-on: https://go-review.googlesource.com/c/go/+/263620
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/closure.go
src/cmd/compile/internal/gc/iexport.go
src/cmd/compile/internal/gc/iimport.go
src/cmd/compile/internal/gc/inl.go
test/inline.go