]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/gc: allocate buffers for non-escaping string conversions on stack
authorDmitry Vyukov <dvyukov@google.com>
Fri, 30 Jan 2015 06:14:13 +0000 (09:14 +0300)
committerDmitry Vyukov <dvyukov@google.com>
Thu, 12 Feb 2015 08:29:53 +0000 (08:29 +0000)
commit9568126f350b10163155045445cb149323a2b5c8
treec827fd80cdf26992d360ebb87a231338f9d529f2
parentcdc2b0568feac1867377dddccf6eafa45cd27352
cmd/gc: allocate buffers for non-escaping string conversions on stack

Support the following conversions in escape analysis:
[]rune("foo")
[]byte("foo")
string([]rune{})

If the result does not escape, allocate temp buffer on stack
and pass it to runtime functions.

Change-Id: I1d075907eab8b0109ad7ad1878104b02b3d5c690
Reviewed-on: https://go-review.googlesource.com/3590
Reviewed-by: Russ Cox <rsc@golang.org>
src/cmd/gc/builtin.c
src/cmd/gc/esc.c
src/cmd/gc/runtime.go
src/cmd/gc/walk.c
src/runtime/string.go
test/escape2.go
test/escape2n.go