diff options
author | David Chase <drchase@google.com> | 2016-10-28 13:33:57 -0400 |
---|---|---|
committer | David Chase <drchase@google.com> | 2016-10-31 19:38:50 +0000 |
commit | 9c066bab643a0224decdd71813096e0d1df0624c (patch) | |
tree | 9e7ff445d12d53a581f5f1306510e9bb5e879893 /test/uintptrescapes2.go | |
parent | eec1e5d9c6d00fc493714a09b71e2bca2d7e7fa4 (diff) | |
download | go-9c066bab643a0224decdd71813096e0d1df0624c.tar.gz go-9c066bab643a0224decdd71813096e0d1df0624c.zip |
cmd/compile: mark temps with new AutoTemp flag, and use it.
This is an extension of
https://go-review.googlesource.com/c/31662/
to mark all the temporaries, not just the ssa-generated ones.
Before-and-after ls -l `go tool -n compile` shows a 3%
reduction in size (or rather, a prior 3% inflation for
failing to filter temps out properly.)
Replaced name-dependent "is it a temp?" tests with calls to
*Node.IsAutoTmp(), which depends on AutoTemp. Also replace
calls to istemp(n) with n.IsAutoTmp(), to reduce duplication
and clean up function name space. Generated temporaries
now come with a "." prefix to avoid (apparently harmless)
clashes with legal Go variable names.
Fixes #17644.
Fixes #17240.
Change-Id: If1417f29c79a7275d7303ddf859b51472890fd43
Reviewed-on: https://go-review.googlesource.com/32255
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'test/uintptrescapes2.go')
-rw-r--r-- | test/uintptrescapes2.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/uintptrescapes2.go b/test/uintptrescapes2.go index d39bab764a..57c21edbce 100644 --- a/test/uintptrescapes2.go +++ b/test/uintptrescapes2.go @@ -22,10 +22,10 @@ func F2(a ...uintptr) {} // ERROR "escaping ...uintptr" "a does not escape" func G() { var t int // ERROR "moved to heap" - F1(uintptr(unsafe.Pointer(&t))) // ERROR "live at call to F1: autotmp" "&t escapes to heap" + F1(uintptr(unsafe.Pointer(&t))) // ERROR "live at call to F1: .?autotmp" "&t escapes to heap" } func H() { var v int // ERROR "moved to heap" - F2(0, 1, uintptr(unsafe.Pointer(&v)), 2) // ERROR "live at call to newobject: autotmp" "live at call to F2: autotmp" "escapes to heap" + F2(0, 1, uintptr(unsafe.Pointer(&v)), 2) // ERROR "live at call to newobject: .?autotmp" "live at call to F2: .?autotmp" "escapes to heap" } |