- 04 Mar, 2016 25 commits
-
-
Matthew Dempsky authored
Change-Id: I01ec7d08884a1e0fbce94ea77281c1ee4a2cfd56 Reviewed-on: https://go-review.googlesource.com/20238Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Also fix some uses of nodeSeqIterator.Len, and fix the implementation in nodesIterator. Passes toolstash -cmp. Update #14473. Change-Id: I228871470234b7f1314ffd2aae8a4c0624c35f98 Reviewed-on: https://go-review.googlesource.com/20231 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Rhys Hiltner authored
When the linker was written in C, command line arguments were passed around as null-terminated byte arrays which encouraged checking characters one at a time. In Go, that can easily lead to out-of-bounds panics. Use the more idiomatic strings.HasPrefix when checking cmd/link's -B argument to avoid the panic, and replace the manual hex decode with use of the encoding/hex package. Fixes #14636 Change-Id: I45f765bbd8cf796fee1a9a3496178bf76b117827 Reviewed-on: https://go-review.googlesource.com/20211 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
gcMarkRootCheck takes ~10ns per goroutine. This is just a debugging check, so disable it (plus, if something is going to go wrong, it's more likely to go wrong during concurrent mark). We may be able to re-enable this later, or move it to after we've started the world again. (But not for 1.6.x.) For 1.6.x. Fixes #14419. name / 95%ile-time/markTerm old new delta 500kIdleGs-12 24.0ms ± 0% 18.9ms ± 6% -21.46% (p=0.000 n=15+20) Change-Id: Idb2a2b1771449de772c159ef95920d6df1090666 Reviewed-on: https://go-review.googlesource.com/20148Reviewed-by: Rick Hudson <rlh@golang.org> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Austin Clements authored
Currently we reset the mark state during STW sweep termination. This involves looping over all of the goroutines. Each iteration of this loop takes ~25ns, so at around 400k goroutines, we'll exceed our 10ms pause goal. However, it's safe to do this before we stop the world for sweep termination because nothing is consuming this state yet. Hence, move the reset to just before STW. This isn't perfect: a long reset can still delay allocating goroutines that block on GC starting. But it's certainly better to block some things eventually than to block everything immediately. For 1.6.x. Fixes #14420. name \ 95%ile-time/sweepTerm old new delta 500kIdleGs-12 11312µs ± 6% 18.9µs ± 6% -99.83% (p=0.000 n=16+20) Change-Id: I9815c4d8d9b0d3c3e94dfdab78049cefe0dcc93c Reviewed-on: https://go-review.googlesource.com/20147Reviewed-by: Rick Hudson <rlh@golang.org> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Also fix compiler-invoked panics to avoid a confusing "malloc deadlock" crash if they are invoked while executing the runtime. Fixes #14599. Change-Id: I89436abcbf3587901909abbdca1973301654a76e Reviewed-on: https://go-review.googlesource.com/20219 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
David Crawshaw authored
Many read-only strings in Go binaries are substrings of other read-only strings. A common source is the text form of type information, which will include both "struct { X int }" and "*struct { X int }" or "*bytes.Reader" and "func(*bytes.Reader)" in the same binary. Because this character data is referred to by separate string headers, we can skip writing the smaller string and modify the pointer relocation to point to the larger string. This CL does this deduplication in the linker after the reachable set of strings has been determined. This removes 765KB from juju (1.4% without DWARF). Link time goes at tip goes form 4.6s to 6.3s, but note that this CL is part of a series that recently reduced link time from 9.6s. For #6853. Change-Id: Ib2087cf627c9f1e9a1181f9b4c8f81d1a3f42191 Reviewed-on: https://go-review.googlesource.com/19987Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
go test github.com/onsi/gomega/gbytes now passes at tip, and tests added to the reflect package. Fixes #14645 Change-Id: I16216c1a86211a1103d913237fe6bca5000cf885 Reviewed-on: https://go-review.googlesource.com/20221 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Munday authored
Minalign > 1 implies that relocations inserted by the linker cannot target arbitrary bytes. Related to #14604 Change-Id: Ie68d14887bc4047d9b29b0cb1149a8d14b6c62e2 Reviewed-on: https://go-review.googlesource.com/20214Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
Passes toolstash -cmp. Update #14473. Change-Id: I60ef7cac553b346ca6b8cc7152cd184e59994b66 Reviewed-on: https://go-review.googlesource.com/20216 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Keith Randall authored
To turn ssa compilation on or off altogether, use -ssa=1 or -ssa=0. Default is on. To turn on or off consistency checks, do -d=ssa/check/on or -d=ssa/check/off. Default is on for now. Change-Id: I277e0311f538981c8b9c62e7b7382a0c8755ce4c Reviewed-on: https://go-review.googlesource.com/20217Reviewed-by: David Chase <drchase@google.com>
-
Matthew Dempsky authored
Passing copy==1 to syslook is only necessary to support subsequent calls to substArgTypes. typ2Itab and concatstring* don't have "any" parameters, so no point in deep copying their function signatures at every call site. For a couple other syslook calls (makemap and conv[IET]2[IET]), move them closer to their corresponding substArgTypes calls so it's easier to see that all syslook(fn, 1) calls are necessary. Change-Id: I4a0588ab2b8b5b8ce7a0a44b24c8cf8fda489af6 Reviewed-on: https://go-review.googlesource.com/20215 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Robert Griesemer authored
The changes to internal/big are completely automatic by running vendor.bash in that directory. Also added respective test case. For #14553. Change-Id: I98b124bcc9ad9e9bd987943719be27864423cb5d Reviewed-on: https://go-review.googlesource.com/20199Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
When a big.Float is converted to a denormal float32/64, the rounding precision depends on the size of the denormal. Rounding may round up and thus change the size (exponent) of the denormal. Recompute the correct precision again for correct placement of the mantissa. Fixes #14553. Change-Id: Iedab5810a2d2a405cc5da28c6de7be34cb035b86 Reviewed-on: https://go-review.googlesource.com/20198Reviewed-by: Alan Donovan <adonovan@google.com>
-
David Crawshaw authored
Makes godoc 37KB smaller. For #6853. Change-Id: I0bd6e40f2b4da193768a9fc2ce494cacf7e83c32 Reviewed-on: https://go-review.googlesource.com/19697 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Change-Id: I443f997ed53f965ef5b33734351ab8a07a09746b Reviewed-on: https://go-review.googlesource.com/20213 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Ian Lance Taylor authored
Pases toolstash -cmp. Update #14473. Change-Id: I450d9f51fd280da91952008cd917b749d88960a3 Reviewed-on: https://go-review.googlesource.com/20210 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Good riddance to another one-off linked list type. Change-Id: Idf9926a701ab4da8a022be1d61f1257020d58fc5 Reviewed-on: https://go-review.googlesource.com/20212 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Michael Hudson-Doyle authored
This is mostly changing the opXXX helpers to take an int16 (matching Prog.As) argument and return a uint32. The only bit that's not completely trivial is passing -p.As to opirr to signal operating on a shifted constant, because AADD + ALAST overflows int16. Change-Id: I69133800bbe41c38fa4a89bbbf49823043b3419c Reviewed-on: https://go-review.googlesource.com/20182Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Dave Cheney authored
This CL addresses some issues noted during CL 20089. Change-Id: I4e91a8077c07a571ccc9c004278672eb951c5104 Reviewed-on: https://go-review.googlesource.com/20181Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dave Cheney <dave@cheney.net> Run-TryBot: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
djherbis authored
The existing implementation returns nil, ErrBufferFull when n > len(b.buf), now it will return any data in the buffer and ErrBufferFull. Fixes #14121 Change-Id: Ie52d32ccd80e4078ebfae6e75393c89675959ead Reviewed-on: https://go-review.googlesource.com/19091 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Ian Lance Taylor authored
Move a few local fields all the way to []*Node while I'm at it. Update #14473. Change-Id: Ib18360879839ac592f778cf1042f111bdf14add3 Reviewed-on: https://go-review.googlesource.com/20197 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Matthew Dempsky authored
Automated CL prepared by github.com/mdempsky/unconvert, except for reverting changes to ssa/rewritegeneric.go (generated file) and package big (vendored copy of math/big). Change-Id: I64dc4199f14077c7b6a2f334b12249d4a785eadd Reviewed-on: https://go-review.googlesource.com/20089 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Ian Lance Taylor authored
Add new functions setNodeSeqNode, appendNodeSeq, appendNodeSeqNode. Passes toolstash -cmp. Change-Id: I6c1745b1108dea45a2c0d029b9de1917ae17a962 Reviewed-on: https://go-review.googlesource.com/20196 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Spencer Nelson authored
cmd/vet's printf checker currently uses a hardcoded map of function names to expected positions of format strings. We can be a bit more precise than this by looking up the signature of the function, which helps when libraries implement functions like Errorf or Logf with extra arguments like log levels or error codes. Specifically, the format string param is assumed to be the last string parameter of the called function. Fixes #12294. Change-Id: Icf10ebb819bba91fa1c4109301417042901e34c7 Reviewed-on: https://go-review.googlesource.com/20163 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
- 03 Mar, 2016 15 commits
-
-
Ian Lance Taylor authored
Added Seq method to nodeListIterator. Added new functions nodeSeqLen, nodeSeqFirst, nodeSeqSecond. Allow nil as source argument to setNodeSeq. Change-Id: Ifc1cd4d7207b7a125b3830c92c4d6d6f00eedd54 Reviewed-on: https://go-review.googlesource.com/20195Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Also rewrite bexport.go to use nodeSeqIterate. The new setNodeSeq is a transitional generic function to set either a NodeList or a slice to either a NodeList or a slice. This should permit us to flip fields from *NodeList to []*Node, or Nodes, without changing other code. Passes toolstash -cmp. Change-Id: I872cbfe45bc5f432595737c1f6da641c502b1ab6 Reviewed-on: https://go-review.googlesource.com/20194Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David du Colombier authored
The ssa compiler uses the duffcopy and duffzero functions, which rely on the MOVUPS instructions. However, this doesn't work on Plan 9, since floating point operations are not allowed in the note handler. This change disables the use of duffcopy and duffzero on Plan 9 in the ssa compiler. Updates #14605. Change-Id: I017f8ff83de00eabaf7e146b4344a863db1dfddc Reviewed-on: https://go-review.googlesource.com/20171Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: David du Colombier <0intro@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
I tried to write a program to convert *NodeList to Node, but ran into too many problem cases. I'm backing off and trying a more iterative approach using interfaces. This CL adds an interface for iteration over either a *NodeList or a Nodes. I changed typechecklist to use it, to show how it works. After NodeList is eliminated, we can change the typechecklist parameter type to Nodes. Passes toolstash -cmp. Change-Id: I5c7593714b020d20868b99151b1e7cadbbdbc397 Reviewed-on: https://go-review.googlesource.com/20190 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David Crawshaw authored
This CL introduces a mergestrings pass after the reachability analysis to combine all reachable go.string."..." character data symbols into a single symbol. Shrinks juju by 1.2mb (1.5%). Shrinks cmd/go by 0.5% when building without DWARF. No noticable effect on linker speed. Change-Id: I2ba3e60bf418f65766bda257f6ca9eea26d895b6 Reviewed-on: https://go-review.googlesource.com/20165 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
The listsort function is no longer used, except in a test. Change the test to use sort.Sort instead. Change-Id: Ib634705cc1bc3b1d8fc3795bd4ed2894e6abc284 Reviewed-on: https://go-review.googlesource.com/19964Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
Make sure we don't depend on map iterator order. Fixes #14600 Change-Id: Iac0e0c8689f3ace7a4dc8e2127e2fd3c8545bd29 Reviewed-on: https://go-review.googlesource.com/20158 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
If we're about to enter a loop, load values which are live and will soon be used in the loop into registers. name old time/op new time/op delta BinaryTree17-8 2.80s ± 4% 2.62s ± 2% -6.43% (p=0.008 n=5+5) Fannkuch11-8 2.45s ± 2% 2.14s ± 1% -12.43% (p=0.008 n=5+5) FmtFprintfEmpty-8 49.0ns ± 1% 48.4ns ± 1% -1.35% (p=0.032 n=5+5) FmtFprintfString-8 160ns ± 1% 153ns ± 0% -4.63% (p=0.008 n=5+5) FmtFprintfInt-8 152ns ± 0% 150ns ± 0% -1.57% (p=0.000 n=5+4) FmtFprintfIntInt-8 252ns ± 2% 244ns ± 1% -3.02% (p=0.008 n=5+5) FmtFprintfPrefixedInt-8 223ns ± 0% 223ns ± 0% ~ (all samples are equal) FmtFprintfFloat-8 293ns ± 2% 291ns ± 2% ~ (p=0.389 n=5+5) FmtManyArgs-8 956ns ± 0% 936ns ± 0% -2.05% (p=0.008 n=5+5) GobDecode-8 7.18ms ± 0% 7.11ms ± 0% -1.02% (p=0.008 n=5+5) GobEncode-8 6.12ms ± 3% 6.07ms ± 1% ~ (p=0.690 n=5+5) Gzip-8 284ms ± 1% 284ms ± 0% ~ (p=1.000 n=5+5) Gunzip-8 40.8ms ± 1% 40.6ms ± 1% ~ (p=0.310 n=5+5) HTTPClientServer-8 69.8µs ± 1% 72.2µs ± 4% ~ (p=0.056 n=5+5) JSONEncode-8 16.1ms ± 2% 16.2ms ± 1% ~ (p=0.151 n=5+5) JSONDecode-8 54.9ms ± 0% 57.0ms ± 1% +3.79% (p=0.008 n=5+5) Mandelbrot200-8 4.35ms ± 0% 4.39ms ± 0% +0.85% (p=0.008 n=5+5) GoParse-8 3.56ms ± 1% 3.42ms ± 1% -4.03% (p=0.008 n=5+5) RegexpMatchEasy0_32-8 75.6ns ± 1% 75.0ns ± 0% -0.83% (p=0.016 n=5+4) RegexpMatchEasy0_1K-8 250ns ± 0% 252ns ± 1% +0.80% (p=0.016 n=4+5) RegexpMatchEasy1_32-8 75.0ns ± 0% 75.4ns ± 2% ~ (p=0.206 n=5+5) RegexpMatchEasy1_1K-8 401ns ± 0% 398ns ± 1% ~ (p=0.056 n=5+5) RegexpMatchMedium_32-8 119ns ± 0% 118ns ± 0% -0.84% (p=0.008 n=5+5) RegexpMatchMedium_1K-8 36.6µs ± 0% 36.9µs ± 0% +0.91% (p=0.008 n=5+5) RegexpMatchHard_32-8 1.95µs ± 1% 1.92µs ± 0% -1.23% (p=0.032 n=5+5) RegexpMatchHard_1K-8 58.3µs ± 1% 58.1µs ± 1% ~ (p=0.548 n=5+5) Revcomp-8 425ms ± 1% 389ms ± 1% -8.39% (p=0.008 n=5+5) Template-8 65.5ms ± 1% 63.6ms ± 1% -2.86% (p=0.008 n=5+5) TimeParse-8 363ns ± 0% 354ns ± 1% -2.59% (p=0.008 n=5+5) TimeFormat-8 363ns ± 0% 364ns ± 1% ~ (p=0.159 n=5+5) Fixes #14511 Change-Id: I1b79d2545271fa90d5b04712cc25573bdc94f2ce Reviewed-on: https://go-review.googlesource.com/20151 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
David Crawshaw authored
Change-Id: I939129da0e71a7ccc61bec79515a34f0b1e59502 Reviewed-on: https://go-review.googlesource.com/20162Reviewed-by: Dave Cheney <dave@cheney.net> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
Change-Id: Idc95452088d23be8e18522209d98f789dfca070b Reviewed-on: https://go-review.googlesource.com/20161Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Caleb Spare authored
Fixes #14547. Change-Id: Ic175ee8f7e65b9b99f1f47fbf267a2aba7c8fec7 Reviewed-on: https://go-review.googlesource.com/20010 Run-TryBot: Caleb Spare <cespare@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org>
-
Martin Möhrmann authored
No extra buffering is needed to save the encoding since the left padding can be computed and written out before the encoding is generated. Add extra tests to both string and byte slice formatting. name old time/op new time/op delta SprintfHexString-2 410ns ± 3% 194ns ± 3% -52.60% (p=0.000 n=20+19) SprintfHexBytes-2 431ns ± 3% 202ns ± 2% -53.13% (p=0.000 n=18+20) Change-Id: Ibca4316427c89f834e4faee61614493c7eedb42b Reviewed-on: https://go-review.googlesource.com/20097 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Keith Randall authored
The ODOTPTRs introduced in CL #19814 don't have field names, just offsets. The fieldtrack experiment crashes when examining them. Instead, just ignore them. We'll never track these fields anyway. It would be nice to have the runtime type struct build in the compiler (like we do sudog, for example) so we could use its fieldnames. Doesn't seem worth it just for this CL. Change-Id: I5e75024f5a8333eb7439543b3f466ea40213a1b9 Reviewed-on: https://go-review.googlesource.com/20157Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Change-Id: Ib0a116a78f61eafe88a0ea5dc6733750ae755fdf Reviewed-on: https://go-review.googlesource.com/20156 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
The new Minalign field sets the minimum alignment for all symbols. This is required for the upcoming s390x port which requires symbols be 2-byte aligned for efficient relative addressing. All preexisting architectures have Minalign set to 1 which means that this commit should have no effect. I tested values of 2, 4 and 8 on linux amd64 and the tests appear to pass. Increasing Minalign to 16 appears to break the runtime. I think this is due to assumptions made about the layout of module data. toolstash -cmp on linux amd64 shows no changes due to this commit. Resolves #14604 Change-Id: I0fe042d52c4e4732eba5fabcd0c31102a2408764 Reviewed-on: https://go-review.googlesource.com/20149Reviewed-by: Minux Ma <minux@golang.org> Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-