- 25 Oct, 2016 36 commits
-
-
Cherry Zhang authored
When the compiler insert write barriers, the frontend makes conservative decisions at an early stage. This may have false positives which result in write barriers for stack writes. A new phase, writebarrier, is added to the SSA backend, to delay the decision and eliminate false positives. The frontend still makes conservative decisions. When building SSA, instead of emitting runtime calls directly, it emits WB ops (StoreWB, MoveWB, etc.), which will be expanded to branches and runtime calls in writebarrier phase. Writes to static locations on stack are detected and write barriers are removed. All write barriers of stack writes found by the script from issue #17330 are eliminated (except two false positives). Fixes #17330. Change-Id: I9bd66333da9d0ceb64dcaa3c6f33502798d1a0f8 Reviewed-on: https://go-review.googlesource.com/31131Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Keith Randall <khr@golang.org>
-
Cherry Zhang authored
The runtime traceback code assumes non-empty frame has link link register saved on LR architectures. Make sure it is so in the assember. Also make sure that LR is stored before update SP, so the traceback code will not see a half-updated stack frame if a signal comes during the execution of function prologue. Fixes #17381. Change-Id: I668b04501999b7f9b080275a2d1f8a57029cbbb3 Reviewed-on: https://go-review.googlesource.com/31760Reviewed-by: Michael Munday <munday@ca.ibm.com>
-
Tom Bergan authored
This interface will be implemented by golang.org/x/net/http2 in https://go-review.googlesource.com/c/29439/. Updates golang/go#13443 Change-Id: Ib6bdd403b0878cfe36fa9875c07c2c7239232556 Reviewed-on: https://go-review.googlesource.com/32012 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Lynn Boger authored
Update the ppc64x disassembly code for use by objdump from golang.org/x/arch/ppc64/ppc64asm commit fcea5ea. Enable the objdump testcase for external linking on ppc64le make a minor fix to the expected output. Fixes #17447 Change-Id: I769cc7f8bfade594690a476dfe77ab33677ac03b Reviewed-on: https://go-review.googlesource.com/32015 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Fixes #17148. Change-Id: I4c66aa0733c249ee6019d1c4e802a7e30457d4b6 Reviewed-on: https://go-review.googlesource.com/32030 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Ian Lance Taylor authored
The Dragonfly libc returns a non-zero value for malloc(-1). Fixes #17585. Change-Id: Icfe68011ccbc75c676273ee3c3efdf24a520a004 Reviewed-on: https://go-review.googlesource.com/32050 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
shaharko authored
Reduces the size of LSym struct. On 32bit: before 84 after 76 On 64bit: before 136 after 128 name old time/op new time/op delta Template 182ms ± 3% 182ms ± 3% ~ (p=0.607 n=19+20) Unicode 93.5ms ± 4% 94.2ms ± 3% ~ (p=0.141 n=20+19) GoTypes 608ms ± 1% 605ms ± 2% ~ (p=0.056 n=20+20) name old user-ns/op new user-ns/op delta Template 249M ± 7% 249M ± 4% ~ (p=0.605 n=18+19) Unicode 149M ±14% 151M ± 5% ~ (p=0.724 n=20+17) GoTypes 855M ± 4% 853M ± 3% ~ (p=0.537 n=19+19) name old alloc/op new alloc/op delta Template 40.3MB ± 0% 40.3MB ± 0% -0.11% (p=0.000 n=19+20) Unicode 33.8MB ± 0% 33.8MB ± 0% -0.08% (p=0.000 n=20+20) GoTypes 119MB ± 0% 119MB ± 0% -0.10% (p=0.000 n=19+20) name old allocs/op new allocs/op delta Template 383k ± 0% 383k ± 0% ~ (p=0.703 n=20+20) Unicode 317k ± 0% 317k ± 0% ~ (p=0.982 n=19+18) GoTypes 1.14M ± 0% 1.14M ± 0% ~ (p=0.086 n=20+20) Change-Id: Id6ba0db3ecc4503a4e9af3ed0d5884d4366e8bf9 Reviewed-on: https://go-review.googlesource.com/31870Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: Shahar Kohanim <skohanim@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Rob Pike authored
For historical reasons, the go/doc package does not include the methods within an interface as part of the documented methods for that type. Thus, go doc ast.Node.Pos gives an incorrect and confusing error message: doc: no method Node.Pos in package go/ast This CL does some dirty work to dig down to the methods so interface methods now present their documentation: % go doc ast.node.pos func Pos() token.Pos // position of first character belonging to the node % It must largely sidestep the doc package to do this, which is a shame. Perhaps things will improve there one day. The change does not handle embeddings, and in principle the same approach could be done for struct fields, but that is also not here yet. But this CL fixes the thing that was bugging me. Change-Id: Ic10a91936da96f54ee0b2f4a4fe4a8c9b93a5b4a Reviewed-on: https://go-review.googlesource.com/31852Reviewed-by: Robert Griesemer <gri@golang.org>
-
Josh Bleecher Snyder authored
CL 31330 added more envvars to "go env". This CL brings them to "go bug" as well. Change-Id: Iae122072c8178007eda8b765aaa3f38c3c6e39a0 Reviewed-on: https://go-review.googlesource.com/32011 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
shaharko authored
Instead of generating typelink symbols in the compiler mark types that should have typelinks with a flag. The linker detects this flag and adds the marked types to the typelink table. name old s/op new s/op delta LinkCmdCompile 0.27 ± 6% 0.25 ± 6% -6.93% (p=0.000 n=97+98) LinkCmdGo 0.30 ± 5% 0.29 ±10% -4.22% (p=0.000 n=97+99) name old MaxRSS new MaxRSS delta LinkCmdCompile 112k ± 3% 106k ± 2% -4.85% (p=0.000 n=100+100) LinkCmdGo 107k ± 3% 103k ± 3% -3.00% (p=0.000 n=100+100) Change-Id: Ic95dd4b0101e90c1fa262c9c6c03a2028d6b3623 Reviewed-on: https://go-review.googlesource.com/31772 Run-TryBot: Shahar Kohanim <skohanim@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Mohit Agarwal authored
The condition to determine if any further iterations are needed is evaluated to false in case it encounters a NaN. Instead, flip the condition to keep looping until the factor is greater than the machine roundoff error. Updates #17577 Change-Id: I058abe73fcd49d3ae4e2f7b33020437cc8f290c3 Reviewed-on: https://go-review.googlesource.com/31952Reviewed-by: Robert Griesemer <gri@golang.org>
-
Matthew Dempsky authored
In sinit.go, gdata can already handle strings and complex, so no reason to handle them separately. In obj.go, inline gdatastring and gdatacomplex into gdata, since it's the only caller. Allows extracting out the common Linksym calls. Passes toolstash -cmp. Change-Id: I3cb18d9b4206a8a269c36e0d30a345d8e6caba1f Reviewed-on: https://go-review.googlesource.com/31498 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-
Matthew Dempsky authored
Fixes #17584. Change-Id: I3af31cc1f2e9c906f3b73e77f3b092624ba78fbe Reviewed-on: https://go-review.googlesource.com/31939 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
David Chase authored
Bug 15141 was apparently fixed by some other change to the compiler (this is plausible, it was a weird bug dependent on a particular way of returning a large named array result), add the test to ensure that it stays fixed. Updates #15141. Change-Id: I3d6937556413fab1af31c5a1940e6931563ce2f3 Reviewed-on: https://go-review.googlesource.com/31972 Run-TryBot: David Chase <drchase@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Josh Bleecher Snyder authored
No functional changes. Change-Id: I0842b2560f4296abfc453410fdd79514132cab83 Reviewed-on: https://go-review.googlesource.com/31935 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Josh Bleecher Snyder authored
It no longer exists as of CL 31010. Change-Id: Idd61f392544cad8b3f3f8d984dc5c953b473e2e5 Reviewed-on: https://go-review.googlesource.com/31934 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Lynn Boger authored
Some original shift opcodes for ppc64x expected an operand to be a mask instead of a shift count, preventing some valid shift counts from being written. This adds new opcodes for shifts where needed, using mnemonics that match the ppc64 asm and allowing the assembler to accept the full set of valid shift counts. Fixes #15016 Change-Id: Id573489f852038d06def279c13fd0523736878a7 Reviewed-on: https://go-review.googlesource.com/31853 Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> Reviewed-by: David Chase <drchase@google.com>
-
Josh Bleecher Snyder authored
Change-Id: Ie505b5d8cdfe4ffda71f909d6f81603b6d752eed Reviewed-on: https://go-review.googlesource.com/31937 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Change-Id: Ia499125714e272af87562de5e5d23e68a112df58 Reviewed-on: https://go-review.googlesource.com/31938 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
While we're here, use test[%d] in place of #%d. Change-Id: Ie30afcab9673e78d3ea7ca80f5e662fbea897488 Reviewed-on: https://go-review.googlesource.com/31936 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Introduced in CLs 29380 and 30011. Change-Id: I3d3641e8748ce0adb57b087a1fcd62f295ade665 Reviewed-on: https://go-review.googlesource.com/31933 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Russ Cox authored
Fixes #16811. Change-Id: I7d018015f691838482ccf845d621209b96935ba4 Reviewed-on: https://go-review.googlesource.com/31657 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Quentin Smith <quentin@golang.org>
-
Michael Munday authored
These are emulated by the assembler and we don't need them. Change-Id: I2b07c5315a5b642fdb5e50b468453260ae121164 Reviewed-on: https://go-review.googlesource.com/31758Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Munday authored
Implements the following intrinsics on s390x: - AtomicAdd{32,64} - AtomicCompareAndSwap{32,64} - AtomicExchange{32,64} - AtomicLoad{32,64,Ptr} - AtomicStore{32,64,PtrNoWB} I haven't added rules for And8 or Or8 yet. Change-Id: I647af023a8e513718e90e98a60191e7af6167314 Reviewed-on: https://go-review.googlesource.com/31614 Run-TryBot: Michael Munday <munday@ca.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Martin Möhrmann authored
Apply the optimizations added to color conversion functions in https://go-review.googlesource.com/#/c/21910/ to the RGBA methods. YCbCrToRGBA/0-4 6.32ns ± 3% 6.58ns ± 2% +4.15% (p=0.000 n=20+19) YCbCrToRGBA/128-4 8.02ns ± 2% 5.89ns ± 2% -26.57% (p=0.000 n=20+19) YCbCrToRGBA/255-4 8.06ns ± 2% 6.59ns ± 3% -18.18% (p=0.000 n=20+20) NYCbCrAToRGBA/0-4 8.71ns ± 2% 8.78ns ± 2% +0.86% (p=0.036 n=19+20) NYCbCrAToRGBA/128-4 10.3ns ± 4% 7.9ns ± 2% -23.44% (p=0.000 n=20+20) NYCbCrAToRGBA/255-4 9.64ns ± 2% 8.79ns ± 3% -8.80% (p=0.000 n=20+20) Fixes: #15260 Change-Id: I225efdf74603e8d2b4f063054f7baee7a5029de6 Reviewed-on: https://go-review.googlesource.com/31773 Run-TryBot: Martin Möhrmann <martisch@uos.de> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Nigel Tao <nigeltao@golang.org>
-
shaharko authored
name old s/op new s/op delta LinkCmdGo 0.29 ± 5% 0.29 ± 8% -2.60% (p=0.000 n=97+98) name old MaxRSS new MaxRSS delta LinkCmdGo 106k ± 4% 105k ± 3% -1.00% (p=0.000 n=100+99) Change-Id: I75a1c3b24ea711a15a5d2eae026b70b97ee7bad4 Reviewed-on: https://go-review.googlesource.com/31030 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
shaharko authored
Before go supported buildmode=shared ·f symbols used to be defined only when they were used. In order to solve #11480 the strategy was changed to have these symbols defined on declaration which is less efficient and generates many unneeded symbols. With this change the best strategy is chosen for each situation, improving static linking time: name old s/op new s/op delta LinkCmdCompile 0.27 ± 5% 0.25 ± 6% -8.22% (p=0.000 n=98+96) LinkCmdGo 0.30 ± 6% 0.29 ± 8% -5.03% (p=0.000 n=95+99) name old MaxRSS new MaxRSS delta LinkCmdCompile 107k ± 2% 98k ± 3% -8.32% (p=0.000 n=99+100) LinkCmdGo 106k ± 3% 104k ± 3% -1.94% (p=0.000 n=99+100) Change-Id: I965eeee30541e724fd363804adcd6fda10f965a4 Reviewed-on: https://go-review.googlesource.com/31031Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
Paul Marks authored
In general, these functions cannot behave correctly when given a hostname, because a hostname may represent multiple IP addresses, and first(isIPv4) chooses at most one. Updates #9334 Change-Id: Icfb629f84af4d976476385a3071270253c0000b1 Reviewed-on: https://go-review.googlesource.com/31931Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Looking at the kernel sources, I don't see how this is possible. But obviously it is. Just try again. Fixes #17161. Change-Id: Iea7d53f7cf75944792d2f75a0d07129831c7bcdb Reviewed-on: https://go-review.googlesource.com/31823 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Change-Id: If7740ac7b6c4190db5a1ab4100d12cf16dc79c84 Reviewed-on: https://go-review.googlesource.com/31768 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Hiroshi Ioka authored
The old code leaves garbages in a temporary directory because it cannot remove the current working directory on windows. The new code changes the directory before calling os.Remove. Furthermore, the old code assumes that ioutil.TempDir (os.TempDir) doesn't return a relative path nor an UNC path. If it isn't the case, the new code calls t.Fatal earlier for preventing ambiguous errors. Finally, the old code reassigns the variable which is used by the defer function. It could cause unexpected results, so avoid that. Change-Id: I5fc3902059ecaf18dc1341ecc4979d1206034cd7 Reviewed-on: https://go-review.googlesource.com/31790 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
-
Alex Brainman authored
Updates #15345 Change-Id: I447d133512e99a9900928a910e161a85db6e8b75 Reviewed-on: https://go-review.googlesource.com/31792Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Robert Griesemer authored
Change-Id: Ia86841cf84bc17ff6ecc6e5ac4cec86384a0da00 Reviewed-on: https://go-review.googlesource.com/31719Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Robert Griesemer authored
Requires -newparser=1. For #17487. For #16339. Change-Id: I156fb0c0f8a97e8c72dbbfbd7fe821efee12b957 Reviewed-on: https://go-review.googlesource.com/31597Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Josh Bleecher Snyder authored
It appears to be a vestigial holding ground for bugs. But we have an issue tracker, and #1909 is there and open. Change-Id: I912ff222a24c51fab483be0c67dad534f5a84488 Reviewed-on: https://go-review.googlesource.com/31859Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David du Colombier authored
CL 31468 added TestLookupNonLDH, which was failing on Plan 9, because LookupHost was expecting to return errNoSuchHost on DNS resolution failure, while Plan 9 returned the "dns failure" string. In the Plan 9 implementation of lookupHost, we now return errNoSuchHost instead of the "dns failure" string, so the behavior is more consistant with other operating systems. Fixes #17568. Change-Id: If64f580dc0626a4a4f19e5511ba2ca5daff5f789 Reviewed-on: https://go-review.googlesource.com/31873 Run-TryBot: David du Colombier <0intro@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 24 Oct, 2016 4 commits
-
-
Brad Fitzpatrick authored
Fixes #15557 Change-Id: I02ad98068894e75d4e08e271fdd16cb420519460 Reviewed-on: https://go-review.googlesource.com/31910Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Alexander Döring authored
Change-Id: If061f1f120573cb109d97fa40806e160603cd593 Reviewed-on: https://go-review.googlesource.com/31871Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Joshua Boelter authored
VerifyPeerCertificate returns an error if the peer should not be trusted. It will be called after the initial handshake and before any other verification checks on the cert or chain are performed. This provides the callee an opportunity to augment the certificate verification. If VerifyPeerCertificate is not nil and returns an error, then the handshake will fail. Fixes #16363 Change-Id: I6a22f199f0e81b6f5d5f37c54d85ab878216bb22 Reviewed-on: https://go-review.googlesource.com/26654Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Fixes #17551. Change-Id: I84b7d82654cda3559c119aa56b07f30d0d224865 Reviewed-on: https://go-review.googlesource.com/31857 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-