mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: support runtime.freegc in size-specialized mallocs for noscan objects
This CL is part of a set of CLs that attempt to reduce how much work the GC must do. See the design in https://go.dev/design/74299-runtime-freegc This CL updates the smallNoScanStub stub in malloc_stubs.go to reuse heap objects that have been freed by runtime.freegc calls, and generates the corresponding size-specialized code in malloc_generated.go. This CL only adds support in the specialized mallocs for noscan heap objects (objects without pointers). A later CL handles objects with pointers. While we are here, we leave a couple of breadcrumbs in mkmalloc.go on how to do the generation. Updates #74299 Change-Id: I2657622601a27211554ee862fce057e101767a70 Reviewed-on: https://go-review.googlesource.com/c/go/+/715761 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
parent
c3708350a4
commit
50128a2154
5 changed files with 693 additions and 10 deletions
|
|
@ -254,7 +254,8 @@ func inline(config generatorConfig) []byte {
|
|||
}
|
||||
|
||||
// Write out the package and import declarations.
|
||||
out.WriteString("// Code generated by mkmalloc.go; DO NOT EDIT.\n\n")
|
||||
out.WriteString("// Code generated by mkmalloc.go; DO NOT EDIT.\n")
|
||||
out.WriteString("// See overview in malloc_stubs.go.\n\n")
|
||||
out.WriteString("package " + f.Name.Name + "\n\n")
|
||||
for _, importDecl := range importDecls {
|
||||
out.Write(mustFormatNode(fset, importDecl))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue