diff options
| author | Keith Randall <khr@golang.org> | 2018-10-05 08:54:50 -0700 |
|---|---|---|
| committer | Keith Randall <khr@golang.org> | 2018-10-14 05:21:00 +0000 |
| commit | 389e942745ddd7eef44b71571c463b0dfc3dcac2 (patch) | |
| tree | 85787f61381c1f4a546c79f7732f02e106c857a6 /test/codegen/arithmetic.go | |
| parent | 0e9f8a21f8b6534931f1ab50909161a289a0da3c (diff) | |
| download | go-389e942745ddd7eef44b71571c463b0dfc3dcac2.tar.xz | |
cmd/compile: reuse temporaries in order pass
Instead of allocating a new temporary each time one
is needed, keep a list of temporaries which are free
(have already been VARKILLed on every path) and use
one of them.
Should save a lot of stack space. In a function like this:
func main() {
fmt.Printf("%d %d\n", 2, 3)
fmt.Printf("%d %d\n", 4, 5)
fmt.Printf("%d %d\n", 6, 7)
}
The three [2]interface{} arrays used to hold the ... args
all use the same autotmp, instead of 3 different autotmps
as happened previous to this CL.
Change-Id: I2d728e226f81e05ae68ca8247af62014a1b032d3
Reviewed-on: https://go-review.googlesource.com/c/140301
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'test/codegen/arithmetic.go')
0 files changed, 0 insertions, 0 deletions
