]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.typeparams] cmd/compile: don't compile blank functions
authorMatthew Dempsky <mdempsky@google.com>
Wed, 28 Jul 2021 20:17:32 +0000 (13:17 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Wed, 28 Jul 2021 21:41:21 +0000 (21:41 +0000)
After typechecking a blank function, we can clear out its body and
skip applying middle-end optimizations (inlining, escape analysis). We
already skip sending them through SSA, and the previous CL updated
inlining and escape analysis regress tests to not depend on compiling
blank functions.

Updates #47446.

Change-Id: Ie678763b0e6ff13dd606ce14906b1ccf1bbccaae
Reviewed-on: https://go-review.googlesource.com/c/go/+/338095
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/typecheck/typecheck.go

index 8f3d6cf4bb56b2f9f12558002df4e01be2443358..db1b11c4cfd0a952a4aa22f1b4d3751381d25e19 100644 (file)
@@ -51,8 +51,8 @@ func FuncBody(n *ir.Func) {
        Stmts(n.Body)
        CheckUnused(n)
        CheckReturn(n)
-       if base.Errors() > errorsBefore {
-               n.Body = nil // type errors; do not compile
+       if ir.IsBlank(n.Nname) || base.Errors() > errorsBefore {
+               n.Body = nil // blank function or type errors; do not compile
        }
 }