mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: optimize unified IR handling of imported functions
This CL skips reading of imported function bodies except from the local package or for inlining. Previously, we wasted a bunch of CPU and memory by reading in normal function bodies for all imported functions and methods. Change-Id: I0b3df3f4a3e2819117dac11a1f9e4526288c14d8 Reviewed-on: https://go-review.googlesource.com/c/go/+/347030 Trust: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
This commit is contained in:
parent
50f38d0405
commit
88859f3cd8
1 changed files with 6 additions and 0 deletions
|
|
@ -920,6 +920,12 @@ func (r *reader) addBody(fn *ir.Func) {
|
||||||
pri := pkgReaderIndex{r.p, r.reloc(relocBody), r.dict}
|
pri := pkgReaderIndex{r.p, r.reloc(relocBody), r.dict}
|
||||||
bodyReader[fn] = pri
|
bodyReader[fn] = pri
|
||||||
|
|
||||||
|
if fn.Nname.Defn == nil {
|
||||||
|
// Don't read in function body for imported functions.
|
||||||
|
// See comment in funcExt.
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if r.curfn == nil {
|
if r.curfn == nil {
|
||||||
todoBodies = append(todoBodies, fn)
|
todoBodies = append(todoBodies, fn)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue