aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/stack.go
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2023-08-01 14:41:42 -0400
committerGopher Robot <gobot@golang.org>2023-08-21 21:06:52 +0000
commitcaf9e15fb76631ca692f4779135aec5b82a68370 (patch)
treef1b77567882404e4096eb7f5ccec83449f7a6fa3 /src/runtime/stack.go
parent4a8373c553e8a3b15177f74ac12240bbe320a7ca (diff)
downloadgo-caf9e15fb76631ca692f4779135aec5b82a68370.tar.xz
runtime: drop stack-allocated pcvalueCaches
Now that pcvalue keeps its cache on the M, we can drop all of the stack-allocated pcvalueCaches and stop carefully passing them around between lots of operations. This significantly simplifies a fair amount of code and makes several structures smaller. This series of changes has no statistically significant effect on any runtime Stack benchmarks. I also experimented with making the cache larger, now that the impact is limited to the M struct, but wasn't able to measure any improvements. This is a re-roll of CL 515277 Change-Id: Ia27529302f81c1c92fb9c3a7474739eca80bfca1 Reviewed-on: https://go-review.googlesource.com/c/go/+/520064 Auto-Submit: Austin Clements <austin@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Austin Clements <austin@google.com>
Diffstat (limited to 'src/runtime/stack.go')
-rw-r--r--src/runtime/stack.go3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/runtime/stack.go b/src/runtime/stack.go
index 903b096f08..61cd0a0fdd 100644
--- a/src/runtime/stack.go
+++ b/src/runtime/stack.go
@@ -555,7 +555,6 @@ var ptrnames = []string{
type adjustinfo struct {
old stack
delta uintptr // ptr distance from old to new stack (newbase - oldbase)
- cache pcvalueCache
// sghi is the highest sudog.elem on the stack.
sghi uintptr
@@ -676,7 +675,7 @@ func adjustframe(frame *stkframe, adjinfo *adjustinfo) {
adjustpointer(adjinfo, unsafe.Pointer(frame.varp))
}
- locals, args, objs := frame.getStackMap(&adjinfo.cache, true)
+ locals, args, objs := frame.getStackMap(true)
// Adjust local variables if stack frame has been allocated.
if locals.n > 0 {