cmd/compile: preallocate storage for three Value args
benchstat master2 arg3b
name old time/op new time/op delta
Template 441ms ± 4% 444ms ± 6% ~ (p=0.335 n=22+25)
GoTypes 1.51s ± 2% 1.51s ± 2% ~ (p=0.129 n=25+21)
Compiler 5.59s ± 1% 5.56s ± 2% -0.65% (p=0.001 n=24+21)
name old alloc/op new alloc/op delta
Template 85.6MB ± 0% 85.3MB ± 0% -0.40% (p=0.000 n=25+24)
GoTypes 307MB ± 0% 305MB ± 0% -0.38% (p=0.000 n=25+25)
Compiler 1.06GB ± 0% 1.05GB ± 0% -0.43% (p=0.000 n=25+25)
name old allocs/op new allocs/op delta
Template 1.10M ± 0% 1.09M ± 0% -1.04% (p=0.000 n=25+25)
GoTypes 3.36M ± 0% 3.32M ± 0% -1.13% (p=0.000 n=25+24)
Compiler 13.0M ± 0% 12.9M ± 0% -1.12% (p=0.000 n=25+25)
Change-Id: I1280b846e895c00b95bb6664958a7765bd819610
Reviewed-on: https://go-review.googlesource.com/20296
Reviewed-by: Keith Randall <khr@golang.org>
diff --git a/src/cmd/compile/internal/ssa/value.go b/src/cmd/compile/internal/ssa/value.go
index 3ec7883..a245d26 100644
--- a/src/cmd/compile/internal/ssa/value.go
+++ b/src/cmd/compile/internal/ssa/value.go
@@ -38,8 +38,8 @@
// Source line number
Line int32
- // Storage for the first two args
- argstorage [2]*Value
+ // Storage for the first three args
+ argstorage [3]*Value
}
// Examples: