gcc/libgo/go
Ian Lance Taylor ea5ac5a69b compiler,runtime: pass old slice's ptr/len/cap by value to growslice
In the C calling convention, on AMD64, and probably a number of
    other architectures, a 3-word struct argument is passed on stack.
    This is less efficient than passing in three registers. Further,
    this may affect the code generation in other part of the program,
    even if the function is not actually called.
    
    Slices are common in Go and append is a common slice operation,
    which calls growslice in the growing path. To improve the code
    generation, pass the slice header's three fields as separate
    values, instead of a struct, to growslice.
    
    The drawback is that this makes the runtime implementation
    slightly diverges from the gc runtime.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/168277

From-SVN: r269811
2019-03-19 18:42:43 +00:00
..
archive libgo: fix build on AIX 2019-03-19 14:00:59 +00:00
bufio libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
builtin libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
bytes libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
cmd libgo: fix build on AIX 2019-03-19 14:00:59 +00:00
compress libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
container libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
context libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
crypto libgo: update to Go 1.12 release 2019-02-26 15:38:12 +00:00
database/sql libgo: update to Go 1.12 release 2019-02-26 15:38:12 +00:00
debug libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
encoding libgo: update to Go1.12rc1 2019-02-26 01:00:39 +00:00
errors libgo: update to go1.7rc3 2016-07-22 18:15:38 +00:00
expvar libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
flag libgo: update to Go1.12rc1 2019-02-26 01:00:39 +00:00
fmt libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
go re PR go/89406 (Go testing leaves many temporary directories in /tmp around) 2019-03-02 00:50:30 +00:00
golang.org/x/tools golang.org/x/tools/go/analysis: pass "gccgo" to types.SizesFor 2019-01-22 15:43:40 +00:00
hash libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
html libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
image libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
index/suffixarray libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
internal libgo: fix build on AIX 2019-03-19 14:00:59 +00:00
io libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
log libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
math libgo: update to Go1.12rc1 2019-02-26 01:00:39 +00:00
mime libgo: add hurd build tags 2019-02-01 21:57:36 +00:00
net libgo: fix build on AIX 2019-03-19 14:00:59 +00:00
os libgo: fix build on AIX 2019-03-19 14:00:59 +00:00
path libgo: update to Go 1.12.1 2019-03-18 20:27:59 +00:00
plugin libgo: add hurd build tags 2019-02-01 21:57:36 +00:00
reflect libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
regexp libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
runtime compiler,runtime: pass old slice's ptr/len/cap by value to growslice 2019-03-19 18:42:43 +00:00
sort libgo: update to Go1.12rc1 2019-02-26 01:00:39 +00:00
strconv libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
strings libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
sync libgo: update to Go1.12rc1 2019-02-26 01:00:39 +00:00
syscall libgo: fix build on AIX 2019-03-19 14:00:59 +00:00
testdata libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00
testing libgo: update to Go1.12rc1 2019-02-26 01:00:39 +00:00
text libgo: update to Go 1.12.1 2019-03-18 20:27:59 +00:00
time libgo: add hurd build tags 2019-02-01 21:57:36 +00:00
unicode libgo: update to Go1.12beta2 2019-01-18 19:04:36 +00:00