]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile: shrink stack guard
authorKeith Randall <khr@golang.org>
Thu, 25 Feb 2016 19:40:51 +0000 (11:40 -0800)
committerKeith Randall <khr@golang.org>
Thu, 25 Feb 2016 22:32:48 +0000 (22:32 +0000)
Our stack frame sizes look pretty good now.  Lower the stack
guard from 1024 to 720.
Tip is currently using 720.
We could go lower (to 640 at least) except PPC doesn't like that.

Change-Id: Ie5f96c0e822435638223f1e8a2bd1a1eed68e6aa
Reviewed-on: https://go-review.googlesource.com/19922
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
src/cmd/internal/obj/stack.go
src/runtime/stack.go
test/nosplit.go

index 1a2ee12291ac144fa59c099f6cf3e423b48e5f8c..80f6c6c164c53361773764b50205dca60ef631ff 100644 (file)
@@ -11,7 +11,7 @@ const (
        STACKSYSTEM = 0
        StackSystem = STACKSYSTEM
        StackBig    = 4096
-       StackGuard  = 1024*stackGuardMultiplier + StackSystem
+       StackGuard  = 720*stackGuardMultiplier + StackSystem
        StackSmall  = 128
        StackLimit  = StackGuard - StackSystem - StackSmall
 )
index ba1a1bb14313936dbf673f78e96f27cfc8060bfe..81059965d965db706c0da708ae4f733354f0714d 100644 (file)
@@ -90,7 +90,7 @@ const (
 
        // The stack guard is a pointer this many bytes above the
        // bottom of the stack.
-       _StackGuard = 1024*sys.StackGuardMultiplier + _StackSystem
+       _StackGuard = 720*sys.StackGuardMultiplier + _StackSystem
 
        // After a stack split check the SP is allowed to be this
        // many bytes below the stack guard.  This saves an instruction
index 2bf7077808c29df509e4911aff168aad6d60c168..082fc3b0e67fa86065afbaef6ce0fc2543c8a51c 100644 (file)
@@ -302,13 +302,13 @@ TestCases:
                                // Instead of rewriting the test cases above, adjust
                                // the first stack frame to use up the extra bytes.
                                if i == 0 {
-                                       size += (1024 - 128) - 128
+                                       size += (720 - 128) - 128
                                        // Noopt builds have a larger stackguard.
                                        // See ../src/cmd/dist/buildruntime.go:stackGuardMultiplier
                                        // This increase is included in obj.StackGuard
                                        for _, s := range strings.Split(os.Getenv("GO_GCFLAGS"), " ") {
                                                if s == "-N" {
-                                                       size += 1024
+                                                       size += 720
                                                }
                                        }
                                }