• Keith Randall's avatar
    cmd/compile: reuse temporaries in order pass · 389e9427
    Keith Randall authored
    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: 's avatarCherry Zhang <cherryyz@google.com>
    389e9427
uintptrescapes2.go 1.48 KB