1
0
mirror of https://github.com/golang/go synced 2024-10-03 07:31:22 -06:00
go/src/cmd
Rémy Oudompheng 9fe60801ae cmd/gc: apply escape analysis results to closures.
This avoids an allocation when closures are used
as "macros", in Walk idioms, or as argument to defer.

benchmark                old ns/op    new ns/op    delta
BenchmarkSearchWrappers       1171          354  -69.77%
BenchmarkCallClosure             3            3  -12.54%
BenchmarkCallClosure1          119            7  -93.95%
BenchmarkCallClosure2          183           74  -59.18%
BenchmarkCallClosure3          187           75  -59.57%
BenchmarkCallClosure4          187           76  -58.98%

Compared to Go 1:
benchmark                  old ns/op    new ns/op    delta
BenchmarkSearchWrappers         3208          354  -88.97%

Fixes #3520.

R=daniel.morsing, bradfitz, minux.ma, dave, rsc
CC=golang-dev
https://golang.org/cl/7397056
2013-02-26 00:40:28 +01:00
..
5a libmach, cmd/5a, cmd/5c, cmd/5g, cmd/5l: enable DWARF type info for Linux/ARM 2013-02-26 06:15:29 +08:00
5c libmach, cmd/5a, cmd/5c, cmd/5g, cmd/5l: enable DWARF type info for Linux/ARM 2013-02-26 06:15:29 +08:00
5g libmach, cmd/5a, cmd/5c, cmd/5g, cmd/5l: enable DWARF type info for Linux/ARM 2013-02-26 06:15:29 +08:00
5l libmach, cmd/5a, cmd/5c, cmd/5g, cmd/5l: enable DWARF type info for Linux/ARM 2013-02-26 06:15:29 +08:00
6a cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
6c cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
6g cmd/gc: can stop tracking gotype in regopt 2013-02-25 16:11:34 -05:00
6l cmd/gc: emit explicit type information for local variables 2013-02-25 12:13:47 -05:00
8a cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
8c cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
8g cmd/gc: can stop tracking gotype in regopt 2013-02-25 16:11:34 -05:00
8l cmd/gc: emit explicit type information for local variables 2013-02-25 12:13:47 -05:00
addr2line runtime/pprof: support OS X CPU profiling 2012-02-28 16:18:24 -05:00
api bytes, strings: add TrimPrefix and TrimSuffix 2013-02-01 08:41:25 -08:00
cc cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
cgo cmd/cgo, cmd/dist, cmd/go: cgo with clang fixes 2013-02-23 20:24:38 +08:00
cov cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
dist cmd/dist: avoid using %ebx on i386. 2013-02-24 22:45:53 +08:00
fix cmd/fix: delete pre-Go 1 fixes 2013-02-21 12:19:54 -05:00
gc cmd/gc: apply escape analysis results to closures. 2013-02-26 00:40:28 +01:00
go cmd/go: fix vet 2013-02-25 10:43:04 -08:00
godoc cmd/godoc: show examples in text mode 2013-02-25 10:37:17 +11:00
gofmt cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
ld cmd/5g, cmd/5l, cmd/6l, cmd/8l, cmd/gc, cmd/ld, runtime: accurate args and locals information 2013-02-21 12:52:26 -08:00
nm cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
objdump runtime/pprof: support OS X CPU profiling 2012-02-28 16:18:24 -05:00
pack cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
prof cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00
vet cmd/vet: fix up some nits in print.go found by kamil.kisiel@gmail.com 2013-02-24 13:18:36 -08:00
yacc cmd/godoc: use go/build to determine package and example files 2013-02-19 11:19:58 -08:00