- 22 Mar, 2016 1 commit
-
-
Keith Randall authored
Allow names to be used for subexpressions of match rules. For example: (OpA x:(OpB y)) -> ..use x here to refer to the OpB value.. This gets rid of the .Args[0].Args[0]... way of naming we used to use. While we're here, give all subexpression matches names instead of recomputing them with .Args[i] sequences each time they are referenced. Makes the generated rule code a bit smaller. Change-Id: Ie42139f6f208933b75bd2ae8bd34e95419bc0e4e Reviewed-on: https://go-review.googlesource.com/20997 Run-TryBot: Todd Neal <todd@tneal.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Todd Neal <todd@tneal.org>
-
- 21 Mar, 2016 33 commits
-
-
Keith Randall authored
Don't write back parts of a slicing operation if they are unchanged from the source of the slice. For example: x.s = x.s[0:5] // don't write back pointer or cap x.s = x.s[:5] // don't write back pointer or cap x.s = x.s[:5:7] // don't write back pointer There is more to be done here, for example: x.s = x.s[:len(x.s):7] // don't write back ptr or len This CL can't handle that one yet. Fixes #14855 Change-Id: Id1e1a4fa7f3076dc1a76924a7f1cd791b81909bb Reviewed-on: https://go-review.googlesource.com/20954Reviewed-by: Austin Clements <austin@google.com> Run-TryBot: Keith Randall <khr@golang.org>
-
Alexandru Moșoi authored
For the following example, but there are a few more in the stdlib: func histogram(b []byte, h *[256]int32) { for _, t := range b { h[t]++ } } Change-Id: I56615f341ae52e02ef34025588dc6d1c52122295 Reviewed-on: https://go-review.googlesource.com/20924Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Alexandru Moșoi <alexandru@mosoi.ro> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Todd Neal authored
Allow inlining of functions with switch statements as long as they don't contain a break or type switch. Fixes #13071 Change-Id: I057be351ea4584def1a744ee87eafa5df47a7f6d Reviewed-on: https://go-review.googlesource.com/20824Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
Converting a big.Float value x to a float32/64 value did not correctly round x up to the smallest denormal float32/64 if x was smaller than the smallest denormal float32/64, but larger than 0.5 of a smallest denormal float32/64. Handle this case explicitly and simplify some code in the turn. For #14651. Change-Id: I025e24bf8f0e671581a7de0abf7c1cd7e6403a6c Reviewed-on: https://go-review.googlesource.com/20816 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
-
Alexandru Moșoi authored
The inserted early bound checks cause the slice to expand beyond the original length of the slice. Change-Id: Ib38891605f4a9a12d3b9e2071a5f77640b083d2d Reviewed-on: https://go-review.googlesource.com/20981Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
-
Keith Randall authored
MOVSB is quite a bit faster for unaligned moves. Possibly we should use MOVSB all of the time, but Intel folks say it might be a bit faster to use MOVSQ on some processors (but not any I have access to at the moment). benchmark old ns/op new ns/op delta BenchmarkMemmove4096-8 93.9 93.2 -0.75% BenchmarkMemmoveUnalignedDst4096-8 256 151 -41.02% BenchmarkMemmoveUnalignedSrc4096-8 175 90.5 -48.29% Fixes #14630 Change-Id: I568e6d6590eb3615e6a699fb474020596be665ff Reviewed-on: https://go-review.googlesource.com/20293Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Josh Bleecher Snyder authored
Passes toolstash -cmp. Change-Id: I8725dee490778be9c1fd31990a6b27df9713c3c9 Reviewed-on: https://go-review.googlesource.com/20957Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Josh Bleecher Snyder authored
Left over from CL 20931. Change-Id: I3b8dd9ef748bcbf70b5118da28135aaa1e5ba3a8 Reviewed-on: https://go-review.googlesource.com/20955 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Minux Ma <minux@golang.org>
-
Robert Griesemer authored
Constant comparisons against 0 are reasonably common. Special-case and avoid allocating a new zero value each time. Change-Id: I6c526c8ab30ef7f0fef59110133c764b7b90ba05 Reviewed-on: https://go-review.googlesource.com/20956Reviewed-by: Alan Donovan <adonovan@google.com>
-
Matthew Dempsky authored
Also give them more idiomatic Go names. Adding godocs is outside the scope of this CL. (Besides, the method names almost all directly parallel an underlying math/big.Int or math/big.Float method.) CL prepared mechanically with sed (for rewriting mpint.go/mpfloat.go) and gofmt (for rewriting call sites). Passes toolstash -cmp. Change-Id: Id76f4aee476ba740f48db33162463e7978c2083d Reviewed-on: https://go-review.googlesource.com/20909 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Marcel van Lohuizen authored
Fixed bug that slipped probably slipped in after rebasing and explain why it failed on nacl/netbsd/plan9, which set default maxparallelism to 1. Change-Id: I4d59682fb2843d138b320334189f53fcdda5b2f6 Reviewed-on: https://go-review.googlesource.com/20980 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Robert Griesemer authored
Fixes #14890. Change-Id: Ie790276b0e2ef94c92db3a777042d750269f876a Reviewed-on: https://go-review.googlesource.com/20953Reviewed-by: Alan Donovan <adonovan@google.com>
-
Michael Munday authored
The Linux ABI takes arguments in a different order on s390x. Change-Id: Ic9cfcc22a5ea3d8ef77d4dd0b915fc266ff3e5f7 Reviewed-on: https://go-review.googlesource.com/20960Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Munday authored
Minimum architecture of z196 required so that GCC can assemble gcc_s390x.S in runtime/cgo. Change-Id: I603ed2edd39f826fb8193740ece5bd11d18c3dc5 Reviewed-on: https://go-review.googlesource.com/20876Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Brad Fitzpatrick authored
Updates #10848 Change-Id: I8353100ed01cb0e8fc19225157f5709bae388612 Reviewed-on: https://go-review.googlesource.com/20975Reviewed-by: Rob Pike <r@golang.org>
-
Michael Munday authored
Fixes this test on s390x. Change-Id: Ie5b70e8191169867765ec9248d827ca12c6405f4 Reviewed-on: https://go-review.googlesource.com/20964Reviewed-by: Minux Ma <minux@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
Change-Id: I928532b406a3457d2c5f75f4de7d46a3f795192e Reviewed-on: https://go-review.googlesource.com/20939Reviewed-by: Minux Ma <minux@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Hudson-Doyle authored
It was just a funny way of saying len(Ctxt.Allsym) by now. Change-Id: Iff75e73c9f7ec4ba26cfef479bbd05d7dcd172f5 Reviewed-on: https://go-review.googlesource.com/20973 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Hudson-Doyle authored
Nothing cares about it. I did this after looking at the memprof output, but it helps performance a bit: name old s/op new s/op delta LinkCmdGo 0.44 ± 3% 0.43 ± 3% -2.20% (p=0.000 n=94+90) LinkJuju 3.98 ± 5% 3.94 ± 5% -1.19% (p=0.000 n=100+91) As well as MaxRSS (i.e. what /usr/bin/time -f '%M' prints): name old MaxRSS new MaxRSS delta LinkCmdGo 130k ± 0% 120k ± 3% -7.79% (p=0.000 n=79+90) LinkJuju 862k ± 6% 827k ± 8% -4.01% (p=0.000 n=100+99) Change-Id: I6306b7b3369576a688659e2ecdb0815b4152ae96 Reviewed-on: https://go-review.googlesource.com/20972 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Change-Id: I0ea74dc1b11fad8ded9e649a3c1e4213ea6639b8 Reviewed-on: https://go-review.googlesource.com/20974 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Munday authored
Change-Id: Iedd01ef3a9d2831cb55c53b7a1984e7e932f4249 Reviewed-on: https://go-review.googlesource.com/20932Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Brad Fitzpatrick authored
Introduce garbage-free LookupN to replace most users of Lookupf. Also, remove the string interning from LookupBytes which was hurting more than helping. name old alloc/op new alloc/op delta Template 63.0MB ± 0% 62.7MB ± 0% -0.48% (p=0.000 n=10+9) Unicode 43.0MB ± 0% 43.0MB ± 0% -0.17% (p=0.000 n=10+7) GoTypes 219MB ± 0% 218MB ± 0% -0.14% (p=0.000 n=10+10) Compiler 992MB ± 0% 991MB ± 0% -0.12% (p=0.000 n=10+10) name old allocs/op new allocs/op delta Template 683k ± 0% 681k ± 0% -0.38% (p=0.000 n=10+8) Unicode 541k ± 0% 541k ± 0% -0.11% (p=0.000 n=10+10) GoTypes 2.09M ± 0% 2.08M ± 0% -0.40% (p=0.000 n=10+10) Compiler 9.28M ± 0% 9.24M ± 0% -0.36% (p=0.000 n=10+10) Size of $GOROOT/pkg/darwin_amd64 drops from 40124 KB to 40100 KB too, removing the zero padding as suggested by josharian. Updates #6853 Change-Id: I3c557266e9325fe29c459cef8e5b8954913e7abb Reviewed-on: https://go-review.googlesource.com/20931Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
Allows the compiler to recognise s390x specific files and s390x build tags. Change-Id: I7c62ab7361cf708181b1d9cfbe9b1fcb01be31e0 Reviewed-on: https://go-review.googlesource.com/20872Reviewed-by: Minux Ma <minux@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Dominik Honnef authored
This deletes unused code and helpers from tests. Change-Id: Ie31d46115f558ceb8da6efbf90c3c204e03b0d7e Reviewed-on: https://go-review.googlesource.com/20927Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
An instruction consisting of all 0s causes an illegal instruction signal on s390x. Since 0s are the default in this test this CL just makes it explicit. Change-Id: Id6e060eed1a588f4b10a4e4861709fcd19b434ac Reviewed-on: https://go-review.googlesource.com/20962Reviewed-by: Minux Ma <minux@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
Change-Id: I39aa6569c9a6f327f7aaa01f8b4ace814fd5b766 Reviewed-on: https://go-review.googlesource.com/20943Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Hudson-Doyle authored
Debugasm can never be set in cmd/link, so delete it and the code it enables. Change-Id: If828db0b09f1a9e512dc660ac2750657a769094c Reviewed-on: https://go-review.googlesource.com/20971 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Hudson-Doyle authored
This expression in readsym: dup != nil && len(dup.P) > 0 && strings.HasPrefix(s.Name, "gclocals·") can never be true: if dup != nil, then s.Name is ".dup" (and this is not new: the same broken logic is present in 1.4, at least). Delete the whole block. Change-Id: I33b14d9a82b292116d6fd79d22b38e3842501317 Reviewed-on: https://go-review.googlesource.com/20970 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Dave Cheney authored
The obj.Nocache helper was only used by the arm back end, move it there. Change-Id: I5c9faf995499991ead1f3d8c8ffc3b6af7346876 Reviewed-on: https://go-review.googlesource.com/20868Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Josh Bleecher Snyder authored
Add a special helper for its one external use. This is in preparation for an upcoming CL. Passes toolstash -cmp / buildall. Change-Id: I9d3463792afe220cc4bc89269bdecf0279abd281 Reviewed-on: https://go-review.googlesource.com/20933 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Dave Cheney authored
This CL addresses a long standing CL by rsc by pushing the use of Link.Windows down to its two users. Link.Window was always initalised with the value of runtime.GOOS so this does not affect cross compilation. Change-Id: Ibbae068f8b5aad06336909691f094384caf12352 Reviewed-on: https://go-review.googlesource.com/20869 Run-TryBot: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Matthew Dempsky authored
'b' is a standard verb for floating point values. The runes like '+' and '#' are called "flags" by package fmt's documentation. The flag '-' controls left/right justification, not anything related to signs. Change-Id: Ia9cf81b002df373f274ce635fe09b5bd0066aa1c Reviewed-on: https://go-review.googlesource.com/20930Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Hudson-Doyle authored
Another object file change, gives a reasonable improvement: name old s/op new s/op delta LinkCmdGo 0.46 ± 3% 0.44 ± 9% -3.34% (p=0.000 n=98+82) LinkJuju 4.09 ± 4% 3.92 ± 5% -4.30% (p=0.000 n=98+99) I guess the data section could be mmap-ed instead of read, I haven't tried that. Change-Id: I959eee470a05526ab1579e3f5d3ede41c16c954f Reviewed-on: https://go-review.googlesource.com/20928 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
- 20 Mar, 2016 6 commits
-
-
Richard Miller authored
In tests TransportPersistConnLeak and TransportPersistConnLeakShortBody, there's a fixed wait time (100ms and 400ms respectively) to allow goroutines to exit after CloseIdleConnections is called. This is sometimes too short on a slow host running many simultaneous tests. This CL replaces the fixed sleep in each test with a sequence of shorter sleeps, testing the number of remaining goroutines until it reaches the threshold or an overall time limit of 500ms expires. This prevents some failures in the plan9_arm builder, while reducing the test time on faster machines. Fixes #14887 Change-Id: Ia5c871062df139e2667cdfb2ce8283e135435318 Reviewed-on: https://go-review.googlesource.com/20922 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alexandru Moșoi authored
Fixes #14849 Change-Id: I86e2dc27ca73bb6b24261a68cbf0094a63167414 Reviewed-on: https://go-review.googlesource.com/20833Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Alexandru Moșoi <alexandru@mosoi.ro> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
For a long time varexpr has handled ODOT incorrectly: it has always returned false. Before https://golang.org/cl/20890 this has been because an ODOT had a Right field with an ONAME with no Class, for which varexpr returns false. CL 20890 preserved the behavior of varexpr for ODOT, so that the change would pass toolstash -cmp. This CL fixes varexpr so that ODOT can return true in some cases. This breaks toolstash -cmp. While the changed compiler allocates temporary variables in a different order, I have not been able to find any examples where the generated code is different, other than using different stack offsets and, in some cases, registers. It seems that other parts of the compiler will force the ODOT into a temporary anyhow. Still, this change is clearly correct, and is a minor compiler cleanup. Change-Id: I71506877aa3c13966bb03c281aa16271ee7fe80a Reviewed-on: https://go-review.googlesource.com/20907 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shahar Kohanim authored
name old s/op new s/op delta LinkCmdGo 0.57 ± 5% 0.55 ± 6% -2.37% (p=0.000 n=97+98) GOGC=off: name old s/op new s/op delta LinkCmdGo 0.48 ± 3% 0.47 ± 3% -2.90% (p=0.000 n=100+100) Change-Id: I1a36dbf84914cacb79842bc0ddb1e26b4c5a5828 Reviewed-on: https://go-review.googlesource.com/20917Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Historically ODOT and friends have been considered to cost an extra budget point when deciding whether they should be inlined, because they had an ONAME node that represented the name to the right of the dot. This doesn't really make sense, as in general that symbol does not add any extra instructions; it just affects the offset of the load or store instruction. And the ONAME node is gone now. So, remove the extra cost. This does not pass toolstash -cmp, as it changes inlining decisions. For example, mspan.init in runtime/mheap.go is now considered to be an inlining candidate. Change-Id: I5ad27f08c66fd5daa4c8472dd0795df989183f5e Reviewed-on: https://go-review.googlesource.com/20891Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shahar Kohanim authored
name old s/op new s/op delta LinkCmdGo 0.59 ± 6% 0.58 ± 5% -1.61% (p=0.000 n=99+99) GOGC=off: name old s/op new s/op delta LinkCmdGo 0.50 ± 3% 0.49 ± 3% -1.28% (p=0.000 n=98+99) Change-Id: I737ae056214999441a210c69ec0cf4febc39a715 Reviewed-on: https://go-review.googlesource.com/20914Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-