aboutsummaryrefslogtreecommitdiff
path: root/test/uintptrescapes2.go
diff options
context:
space:
mode:
authorDavid Chase <drchase@google.com>2016-10-28 13:33:57 -0400
committerDavid Chase <drchase@google.com>2016-10-31 19:38:50 +0000
commit9c066bab643a0224decdd71813096e0d1df0624c (patch)
tree9e7ff445d12d53a581f5f1306510e9bb5e879893 /test/uintptrescapes2.go
parenteec1e5d9c6d00fc493714a09b71e2bca2d7e7fa4 (diff)
downloadgo-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.go4
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"
}