-
- Downloads
cmd/compile: allow all of the preamble to be preemptible
We currently make some parts of the preamble unpreemptible because it confuses morestack. See comments in the code. Instead, have morestack handle those weird cases so we can remove unpreemptible marks from most places. This CL makes user functions preemptible everywhere if they have no write barriers (at least, on x86). In cmd/go the fraction of functions that need preemptible markings drops from 82% to 36%. Makes the cmd/go binary 0.3% smaller. Update #35470 Change-Id: Ic83d5eabfd0f6d239a92e65684bcce7e67ff30bb Reviewed-on: https://go-review.googlesource.com/c/go/+/648518 Auto-Submit: Keith Randall <khr@google.com> Reviewed-by:Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by:
Cherry Mui <cherryyz@google.com>
Showing
- src/cmd/internal/obj/arm/obj5.go 2 additions, 13 deletionssrc/cmd/internal/obj/arm/obj5.go
- src/cmd/internal/obj/arm64/obj7.go 2 additions, 13 deletionssrc/cmd/internal/obj/arm64/obj7.go
- src/cmd/internal/obj/loong64/obj.go 1 addition, 10 deletionssrc/cmd/internal/obj/loong64/obj.go
- src/cmd/internal/obj/mips/obj0.go 0 additions, 8 deletionssrc/cmd/internal/obj/mips/obj0.go
- src/cmd/internal/obj/plist.go 2 additions, 23 deletionssrc/cmd/internal/obj/plist.go
- src/cmd/internal/obj/ppc64/obj9.go 0 additions, 8 deletionssrc/cmd/internal/obj/ppc64/obj9.go
- src/cmd/internal/obj/riscv/obj.go 0 additions, 8 deletionssrc/cmd/internal/obj/riscv/obj.go
- src/cmd/internal/obj/s390x/objz.go 0 additions, 10 deletionssrc/cmd/internal/obj/s390x/objz.go
- src/cmd/internal/obj/x86/obj6.go 4 additions, 17 deletionssrc/cmd/internal/obj/x86/obj6.go
- src/runtime/preempt.go 1 addition, 0 deletionssrc/runtime/preempt.go
- src/runtime/runtime2.go 23 additions, 16 deletionssrc/runtime/runtime2.go
- src/runtime/stack.go 23 additions, 0 deletionssrc/runtime/stack.go
Loading