- 08 Mar, 2017 10 commits
-
-
Josh Bleecher Snyder authored
Inline rawstringtmp and simplify. Use memmove instead of copy. name old time/op new time/op delta SliceByteToString/1-8 19.4ns ± 2% 14.1ns ± 1% -27.04% (p=0.000 n=20+17) SliceByteToString/2-8 20.8ns ± 2% 15.5ns ± 2% -25.46% (p=0.000 n=20+20) SliceByteToString/4-8 20.7ns ± 1% 14.9ns ± 1% -28.30% (p=0.000 n=20+20) SliceByteToString/8-8 23.2ns ± 1% 17.1ns ± 1% -26.22% (p=0.000 n=19+19) SliceByteToString/16-8 29.4ns ± 1% 23.6ns ± 1% -19.76% (p=0.000 n=17+20) SliceByteToString/32-8 31.4ns ± 1% 26.0ns ± 1% -17.11% (p=0.000 n=16+19) SliceByteToString/64-8 36.1ns ± 0% 30.0ns ± 0% -16.96% (p=0.000 n=16+16) SliceByteToString/128-8 46.9ns ± 0% 38.9ns ± 0% -17.15% (p=0.000 n=17+19) Change-Id: I422e688830e4a9bd21897d1f74964625b735f436 Reviewed-on: https://go-review.googlesource.com/37791 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Marvin Stenger <marvin.stenger94@gmail.com> Reviewed-by: Keith Randall <khr@golang.org>
-
Elias Naur authored
On Android devices where the stub fallback for Current fails to extract a User from the environment, return a dummy fallback instead of failing. While we're here, use / instead of /home/nacl for the NaCL fallback. Hopefully fixes the Android builder. Change-Id: Ia29304fbc224ee5f9c0f4e706d1756f765a7eae5 Reviewed-on: https://go-review.googlesource.com/37960 Run-TryBot: Elias Naur <elias.naur@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Bryan C. Mills authored
fixes #18717 Change-Id: I7244463d2e7489e0b0fe3b74c4b782e71210beb2 Reviewed-on: https://go-review.googlesource.com/35494 Run-TryBot: Bryan Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Chase authored
After benchmarking with a compiler modified to have better spill location, it became clear that this method of checking was actually faster on (at least) two different architectures (ppc64 and amd64) and it also provides more timely interruption of loops. This change adds a modified FOR loop node "FORUNTIL" that checks after executing the loop body instead of before (i.e., always at least once). This ensures that a pointer past the end of a slice or array is not made visible to the garbage collector. Without the rescheduling checks inserted, the restructured loop from this change apparently provides a 1% geomean improvement on PPC64 running the go1 benchmarks; the improvement on AMD64 is only 0.12%. Inserting the rescheduling check exposed some peculiar bug with the ssa test code for s390x; this was updated based on initial code actually generated for GOARCH=s390x to use appropriate OpArg, OpAddr, and OpVarDef. NaCl is disabled in testing. Change-Id: Ieafaa9a61d2a583ad00968110ef3e7a441abca50 Reviewed-on: https://go-review.googlesource.com/36206 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Kevin Burke authored
Change-Id: I04e150d4e4123aad2f277e5c6e9f2abd15628a28 Reviewed-on: https://go-review.googlesource.com/37941Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
The position information recorded now consists of the line- directive relative filename and line number. It would be relatively easy to also encode absolute position information as necessary (by serializing src.PosBase data). For example, given $GOROOT/src/tmp/x.go: package p const C0 = 0 //line c.go:10 const C1 = 1 //line t.go:20 type T int //line v.go:30 var V T //line f.go:40 func F() {} The recorded positions for the exported entities are: C0 $GOROOT/src/tmp/x.go 3 C1 c.go 10 T t.go 20 V v.go 30 F f.go 40 Fix verified by manual inspection. There's currently no easy way to test this, but it will eventually be tested when we fix #7311. Fixes #19391. Change-Id: I6269067ea58358250fe6dd1f73bdf9e5d2adfe3d Reviewed-on: https://go-review.googlesource.com/37936Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Sarah Adams authored
This change was originally written by Marko Tiikkaja <marko@joh.to>. https://go-review.googlesource.com/#/c/2035/ Previously *Tx.Stmt always prepared a new statement, even if an existing one was available on the connection the transaction was on. Now we first see if the statement is already available on the connection and only prepare if it isn't. Additionally, when we do need to prepare one, we store it in the parent *Stmt to allow it to be later reused by other calls to *Tx.Stmt on that statement or just straight up by *Stmt.Exec et al. To make sure that the statement doesn't disappear unexpectedly, we record a dependency from the statement returned by *Tx.Stmt to the *Stmt it came from and set a new field, parentStmt, to point to the originating *Stmt. When the transaction's *Stmt is closed, we remove the dependency. This way the "parent" *Stmt can be closed by the user without her having to know whether any transactions are still using it or not. Fixes #15606 Change-Id: I41b5056847e117ac61130328b0239d1e000a4a08 Reviewed-on: https://go-review.googlesource.com/35476 Run-TryBot: Daniel Theophanes <kardianos@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Theophanes <kardianos@gmail.com>
-
Johan Brandhorst authored
After merging https://go-review.googlesource.com/c/34639/, it was pointed out to me that a lot of tests under net/http could use the new functionality to simplify and unify testing. Using the httptest.Server provided Client removes the need to call CloseIdleConnections() on all Transports created, as it is automatically called on the Transport associated with the client when Server.Close() is called. Change the transport used by the non-TLS httptest.Server to a new *http.Transport rather than using http.DefaultTransport implicitly. The TLS version already used its own *http.Transport. This change is to prevent concurrency problems with using DefaultTransport implicitly across several httptest.Server's. Add tests to ensure the httptest.Server.Client().Transport RoundTripper interface is implemented by a *http.Transport, as is now assumed across large parts of net/http tests. Change-Id: I9f9d15f59d72893deead5678d314388718c91821 Reviewed-on: https://go-review.googlesource.com/37771 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Hiroshi Ioka authored
Fixes #19415 Change-Id: I6414f82e42bd09f1793156befce326aeac919ea2 Reviewed-on: https://go-review.googlesource.com/37911Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Russ Cox authored
This helps systems that maintain an external database mapping build ID to symbol information for the given binary, especially in the case where /proc/self/maps lists many different files (for example, many shared libraries). Avoid importing debug/elf to avoid dragging in that whole package (and its dependencies like debug/dwarf) into the build of every program that generates a profile. Fixes #19431. Change-Id: I6d4362a79fe23e4f1726dffb0661d20bb57f766f Reviewed-on: https://go-review.googlesource.com/37855 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 07 Mar, 2017 24 commits
-
-
Robert Griesemer authored
The old code simply printed the position of the line directive in square brackets for a position modified by a line directive. Now we print the corresponding actual source file position instead. Fixes #19392. Change-Id: I933f3e435d03a6ee8269df36ae35f9202b7b2e76 Reviewed-on: https://go-review.googlesource.com/37932 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Mikio Hara authored
This change adds missing docs, collapses single-line import paths, removes unsed method placeholders and renames str.go to strconv.go. Change-Id: I2d155c838935cd8427abd142a462ff4c56829703 Reviewed-on: https://go-review.googlesource.com/37814 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Austin Clements authored
Currently selectgo is just a wrapper around selectgoImpl. This keeps the hard-coded frame skip counts for tracing the same between the channel implementation and the select implementation. However, this is fragile and confusing, so pass a skip parameter to send and recv, join selectgo and selectgoImpl into one function, and use decrease all of the skips in selectgo by one. Change-Id: I11b8cbb7d805b55f5dc6ab4875ac7dde79412ff2 Reviewed-on: https://go-review.googlesource.com/37860 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Matthew Dempsky authored
Several SSA ops will always behave identically regardless of target architecture, so handle those within gc/ssa.go instead. Passes toolstash-check -all. Change-Id: I54d514e80ab86723e44332a5a38e3054cbca8c5d Reviewed-on: https://go-review.googlesource.com/37931 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Austin Clements authored
If the bad pointer is on a stack, this makes it possible to find the frame containing the bad pointer. Change-Id: Ieda44e054aa9ebf22d15d184457c7610b056dded Reviewed-on: https://go-review.googlesource.com/37858 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Austin Clements authored
Change-Id: I6de1ef8f67bde044b8706c01e98400e266e1f8f0 Reviewed-on: https://go-review.googlesource.com/37857 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Matthew Dempsky authored
This commit reworks multiway select statements to use normal control flow primitives instead of the previous setjmp/longjmp-like behavior. This simplifies liveness analysis and should prevent issues around "returns twice" function calls within SSA passes. test/live.go is updated because liveness analysis's CFG is more representative of actual control flow. The case bodies are the only real successors of the selectgo call, but previously the selectsend, selectrecv, etc. calls were included in the successors list too. Updates #19331. Change-Id: I7f879b103a4b85e62fc36a270d812f54c0aa3e83 Reviewed-on: https://go-review.googlesource.com/37661 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Daniel Martí authored
It's only ever called with the value it was using, but the code was counterintuitive. Use the parameter instead, like the other funcs near it. Found by github.com/mvdan/unparam. Change-Id: I45855e11d749380b9b2a28e6dd1d5dedf119a19b Reviewed-on: https://go-review.googlesource.com/37893Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Elias Naur authored
Using the stubs, user.Current will no longer fail on Android, fixing the os/exec.TestCredentialNoSetGroups test. Change-Id: I8b9842aa6704c0cde383c549a614bab0a0ed7695 Reviewed-on: https://go-review.googlesource.com/37765 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alberto Donizetti authored
When defining an int const, the compiler tries to cast the RHS expression to int. The cast may fail for three reasons: 1. expr is an integer constant that overflows int 2. expr is a floating point constant 3. expr is a complex constant, or not a number In the second case, in order to print a sensible error message, we must distinguish between a floating point constant that should be included in the error message and a floating point constant that cannot be reasonably formatted for inclusion in an error message. For example, in: const a int = 1.1 const b int = 1 + 1e-100 a is in the former group, while b is in the latter, since the floating point value resulting from the evaluation of the rhs of the assignment (1.00...01) is too long to be fully printed in an error message, and cannot be shortened without making the error message misleading (rounding or truncating it would result in a "1", which looks like an integer constant, and it makes little sense in an error message about an invalid floating point expression). To fix this problem, we try to format the float value using fconv (which is used by the error reporting mechanism to format float arguments), and then parse the resulting string back to a big.Float. If the result is an integer, we assume that expr is a float value that cannot be reasonably be formatted as a string, and we emit an error message that does not include its string representation. Also, change the error message for overflows to a more conservative "integer too large", which does not mention overflows that are only caused by an internal implementation restriction. Also, change (*Mpint) SetFloat so that it returns a bool (instead of 0/-1 for success/failure). Fixes #11371 Change-Id: Ibbc73e2ed2eaf41f07827b0649d0eb637150ecaa Reviewed-on: https://go-review.googlesource.com/35411 Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com> Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Matthew Dempsky authored
Instead of skipping them based on string matching much later in the compilation process, skip them up front using the proper API. Passes toolstash-check. Change-Id: Ibd4c0448a0701ba0de3235d4689ef300235fa1d9 Reviewed-on: https://go-review.googlesource.com/37930 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Change-Id: I90143e3c6e95a1495f300ffeb10de554aa41f56a Reviewed-on: https://go-review.googlesource.com/37889 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Elias Naur authored
Change-Id: I5f85a7980b9a18d3641c4ee8b0992671a8421bb0 Reviewed-on: https://go-review.googlesource.com/37896 Run-TryBot: Elias Naur <elias.naur@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Kevin Burke authored
Replace 'does not contains' with 'does not contain' where it appears in the source code. Change-Id: Ie7266347c429512c8a41a7e19142afca7ead3922 Reviewed-on: https://go-review.googlesource.com/37887Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Hiroshi Ioka authored
Fixes #19416 Change-Id: I23c69ff637abaa202909f1cba6ed41b3cfe3d117 Reviewed-on: https://go-review.googlesource.com/37812Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Passes toolstash -cmp. Change-Id: I4bd60f7ebba5457e7b3ece688fee2351bfeeb59a Reviewed-on: https://go-review.googlesource.com/37874 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alessandro Arzilli <alessandro.arzilli@gmail.com> Reviewed-by: Than McIntosh <thanm@google.com>
-
Matthew Dempsky authored
No need to keep as Nodes when they're all Types anyway. Change-Id: I8157914ba5b09cadf2263247844680a60233a0f2 Reviewed-on: https://go-review.googlesource.com/37886 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Andrew Benton authored
For consistency with the other named types in this package, this change renames the unexported rsaPublicKey struct to pkcs1PublicKey and positions the declaration up with the other similarly-named types in pkcs1.go. See the final comment of #19355 for discussion. Change-Id: I1fa0366a8efa01602b81bc69287ef747abce84f5 Reviewed-on: https://go-review.googlesource.com/37885Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Daniel Martí authored
Found by github.com/mvdan/unparam. Change-Id: I4795dd0221784d10cf7c9f7b84ea00787d5789f2 Reviewed-on: https://go-review.googlesource.com/37892Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Alex Brainman authored
Sometimes asm code in 2 different packages name its global symbols with the same name. When these symbols are passed to gcc, it refuses to link them thinking they are duplicate. Mark these symbols with IMAGE_SYM_CLASS_STATIC. Fixes #19198. Change-Id: Ia5f59ede47354a2b48ce60b7d406c9f097ff2000 Reviewed-on: https://go-review.googlesource.com/37810Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Hiroshi Ioka authored
rfc2047 says: White space between adjacent 'encoded-word's is not displayed. Although, mime package already have that feature, we cannot simply reuse that code, because there is a subtle difference in quoted-string handling. Fixes #19363 Change-Id: I754201aa3c6b701074ad78fe46818af5b96cbd00 Reviewed-on: https://go-review.googlesource.com/37811Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Josselin Costanzi authored
Document and check that the alphabet cannot contain '\n' or '\r'. Document that the alphabet cannot contain the padding character. Document that the padding character must be equal or bellow '\xff'. Document that the padding character must not be '\n' or '\r'. Fixes #19343 Fixes #19318 Change-Id: I6de0034d347ffdf317d7ea55d6fe38b01c2c4c03 Reviewed-on: https://go-review.googlesource.com/37838Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
Should fix the build dashboard. Change-Id: Id4c8a996d9f689e1fa865a9cff9a7f52c700c691 Reviewed-on: https://go-review.googlesource.com/37877 Run-TryBot: Michael Munday <munday@ca.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Jaana Burcu Dogan authored
Change-Id: I4718c82540ef214728393824b89c8c7f6656823b Reviewed-on: https://go-review.googlesource.com/36210Reviewed-by: Russ Cox <rsc@golang.org>
-
- 06 Mar, 2017 6 commits
-
-
Robert Griesemer authored
This reverts commit cb6e0639. The fix is incorrect as it's perfectly fine to refer to an identifier 'init' inside a function, and 'init' may even be a variable of function value. Misspelling 'init' in that context would lead to an incorrect error message. Reopened #8481. Change-Id: I49787fdf7738213370ae6f0cab54013e9e3394a8 Reviewed-on: https://go-review.googlesource.com/37876 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
philhofer authored
Given (Store [c] (OffPtr <T1> [0] (Addr <T> _)) _ (Store [c] (Addr <T> _) _ _)) dead store elimination doesn't eliminate the inner Store, because it addresses a type of a different width than the first store. When decomposing StructMake operations, always generate an OffPtr to address struct fields so that dead stores to the first field of the struct can be optimized away. benchmarks affected on darwin/amd64: HTTPClientServer-8 73.2µs ± 1% 72.7µs ± 1% -0.69% (p=0.022 n=9+10) TimeParse-8 304ns ± 1% 300ns ± 0% -1.61% (p=0.000 n=9+9) RegexpMatchEasy1_32-8 80.1ns ± 0% 79.5ns ± 1% -0.84% (p=0.000 n=8+9) GobDecode-8 6.78ms ± 0% 6.81ms ± 1% +0.46% (p=0.000 n=9+10) Gunzip-8 36.1ms ± 1% 36.2ms ± 0% +0.37% (p=0.019 n=10+10) JSONEncode-8 15.6ms ± 0% 15.7ms ± 0% +0.69% (p=0.000 n=9+10) Change-Id: Ia80d73fd047f9400c616ca64fdee4f438a0e7f21 Reviewed-on: https://go-review.googlesource.com/37769 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Daniel Martí authored
Found by github.com/mvdan/unparam. Change-Id: I66f5a191cf9c9a11a7c3c4d7ee0a02e2c185f019 Reviewed-on: https://go-review.googlesource.com/37841Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
Debugging support. Change-Id: Ia518aaed36eaba76e6233306f718ad8aff3ce744 Reviewed-on: https://go-review.googlesource.com/37875Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Matthew Dempsky authored
Change-Id: I402383e893223facae451adbd640113126d5edd9 Reviewed-on: https://go-review.googlesource.com/37873 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Shrinks LSym somewhat for non-STEXT LSyms, which are much more common. While here, switch to tracking Automs in a slice instead of a linked list. (Previously, this would have made LSyms larger.) Passes toolstash-check. Change-Id: I082e50e1d1f1b544c9e06b6e412a186be6a4a2b5 Reviewed-on: https://go-review.googlesource.com/37872Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-