go/src
Russ Cox 77ccb16eb1 cmd/internal/gc: transitive inlining
Inlining refuses to inline bodies containing an actual function call, so that
if that call or a child uses runtime.Caller it cannot observe
the inlining.

However, inlining was also refusing to inline bodies that contained
function calls that were themselves inlined away. For example:

	func f() int {
		return f1()
	}

	func f1() int {
		return f2()
	}

	func f2() int {
		return 2
	}

The f2 call in f1 would be inlined, but the f1 call in f would not,
because f1's call to f2 blocked the inlining, despite itself eventually
being inlined away.

Account properly for this kind of transitive inlining and enable.

Also bump the inlining budget a bit, so that the runtime's
heapBits.next is inlined.

This reduces the time for '6g *.go' in html/template by around 12% (!).
(For what it's worth, closing Chrome reduces the time by about 17%.)

Change-Id: If1aa673bf3e583082dcfb5f223e67355c984bfc1
Reviewed-on: https://go-review.googlesource.com/5952
Reviewed-by: Austin Clements <austin@google.com>
2015-02-26 17:36:00 +00:00
..
archive archive/zip: fix size value in ZIP64 end central directory record 2015-02-26 15:24:32 +00:00
bufio
builtin
bytes
cmd cmd/internal/gc: transitive inlining 2015-02-26 17:36:00 +00:00
compress
container
crypto crypto/x509: make behaviour of absolute DNS names match Chromium. 2015-02-24 19:45:52 +00:00
database/sql
debug
encoding encoding/xml: add more marshalTests tests. 2015-02-25 23:56:21 +00:00
errors
expvar
flag
fmt
go go/build: disable deps test on darwin/arm 2015-02-26 14:54:55 +00:00
hash
html
image image/jpeg: support 4:1:1 and 4:1:0 chroma subsampling. 2015-02-26 02:08:45 +00:00
index/suffixarray
internal os: Use GetComputerNameEx to get Hostname on win32 2015-02-25 23:16:44 +00:00
io
lib9 [dev.cc] all: merge master (5f1efe7) into dev.cc 2015-02-13 12:51:56 -05:00
libbio
liblink [dev.cc] liblink: disable GOOBJ=2 default 2015-02-13 18:37:31 +00:00
log
math math/big: export Float.MinPrec 2015-02-26 17:01:16 +00:00
mime
net net: enable TestTCPReadWriteAllocs in short mode 2015-02-24 08:26:56 +00:00
os os/exec: disable tests on darwin/arm 2015-02-26 16:19:46 +00:00
path path/filepath: add example for filepath.Split 2015-02-20 07:35:57 +00:00
reflect Call --> CallSlice in two spots. No logic change, docs only. 2015-02-22 17:22:04 +00:00
regexp
runtime runtime: skip test on darwin/arm 2015-02-26 15:31:49 +00:00
sort sort: fixed small typo in comments 2015-02-08 23:38:50 +00:00
strconv strconv: simplified logic resulting in faster float formatting 2015-02-11 17:45:19 +00:00
strings
sync sync: add active spinning to Mutex 2015-02-24 10:53:48 +00:00
syscall syscall: generate AT_* constants and regenerate ztypes_linux_*.go 2015-02-25 02:45:02 +00:00
testing testing: pad benchmark names to align results 2015-02-07 21:52:25 +00:00
text
time Build fix for plan9 after 8bf13838eb. 2015-02-08 22:30:46 +00:00
unicode unicode: Fixed an out of date comment (MaxLatin1, not Latin1Max). 2015-02-16 21:35:33 +00:00
unsafe
Make.dist
all.bash
all.bat
all.rc
androidtest.bash androidtest.bash: remove use of cp --preserve. 2015-02-13 21:16:25 +00:00
clean.bash
clean.bat
clean.rc
make.bash [dev.cc] cmd/go: fix expansion of 'std', add 'cmd' 2015-02-23 15:13:17 +00:00
make.bat [dev.cc] cmd/go: fix expansion of 'std', add 'cmd' 2015-02-23 15:13:17 +00:00
make.rc [dev.cc] cmd/go: fix expansion of 'std', add 'cmd' 2015-02-23 15:13:17 +00:00
nacltest.bash cmd/dist: reactivate vfp detection on linux/arm 2015-02-10 00:17:06 +00:00
race.bash [dev.cc] cmd/go: fix expansion of 'std', add 'cmd' 2015-02-23 15:13:17 +00:00
race.bat [dev.cc] cmd/go: fix expansion of 'std', add 'cmd' 2015-02-23 15:13:17 +00:00
run.bash [dev.cc] cmd/go: fix expansion of 'std', add 'cmd' 2015-02-23 15:13:17 +00:00
run.bat [dev.cc] cmd/go: fix expansion of 'std', add 'cmd' 2015-02-23 15:13:17 +00:00
run.rc [dev.cc] cmd/go: fix expansion of 'std', add 'cmd' 2015-02-23 15:13:17 +00:00