- 28 Oct, 2016 9 commits
-
-
Carlos Eduardo Seo authored
The current implementation for Power architecture does not include the vector scalar (VSX) registers. This adds the 63 VSX registers and the most commonly used instructions: load/store VSX vector/scalar, move to/from VSR, logical operations, select, merge, splat, permute, shift, FP-FP conversion, FP-integer conversion and integer-FP conversion. Change-Id: I0f7572d2359fe7f3ea0124a1eb1b0bebab33649e Reviewed-on: https://go-review.googlesource.com/30510Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com> Reviewed-by: David Chase <drchase@google.com> Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
Based on the calling convention documented in: https://msdn.microsoft.com/en-us/library/zthk2dkh.aspx and long-used in golang.org/x/mobile/gl via some fixup asm: https://go.googlesource.com/mobile/+/master/gl/work_windows_amd64.s Fixes #6510 Change-Id: I97e81baaa2872bcd732b1308915eb66f1ba2168f Reviewed-on: https://go-review.googlesource.com/32173 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Minux Ma <minux@golang.org>
-
Austin Clements authored
Currently, gcDrain looks for the preemption flag at getg().preempt. However, commit d6625caf moved mark worker draining to the system stack, which means getg() returns the g0, which never has the preempt flag set, so idle and fractional workers don't get preempted after 10ms and just run until they run out of work. As a result, if there's enough idle time, GC becomes effectively STW. Fix this by looking for the preemption flag on getg().m.curg, which will always be the user G (where the preempt flag is set), regardless of whether gcDrain is running on the user or the g0 stack. Change-Id: Ib554cf49a705b86ccc3d08940bc869f868c50dd2 Reviewed-on: https://go-review.googlesource.com/32251 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
-
Peter Weinberger authored
runtime.SetMutexProfileFraction(n int) will capture 1/n-th of stack traces of goroutines holding contended mutexes if n > 0. From runtime/pprof, pprot.Lookup("mutex").WriteTo writes the accumulated stack traces to w (in essentially the same format that blocking profiling uses). Change-Id: Ie0b54fa4226853d99aa42c14cb529ae586a8335a Reviewed-on: https://go-review.googlesource.com/29650Reviewed-by: Austin Clements <austin@google.com>
-
Martin Möhrmann authored
- removes the runtime function stringtoslicebytetmp - removes the generation of calls to stringtoslicebytetmp from the frontend - adds handling of OSTRARRAYBYTETMP in the backend This reduces binary sizes and avoids function call overhead. Change-Id: Ib9988d48549cee663b685b4897a483f94727b940 Reviewed-on: https://go-review.googlesource.com/32158Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Martin Möhrmann <martisch@uos.de> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Alex Brainman authored
I do not know why it is included. All tests pass without it. Change-Id: I839076ee131816dfd177570a902c69fe8fba5022 Reviewed-on: https://go-review.googlesource.com/32144 Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Josh Bleecher Snyder authored
name old allocs/op new allocs/op delta Template 389k ± 0% 386k ± 0% -0.84% (p=0.000 n=10+10) Unicode 323k ± 0% 323k ± 0% -0.25% (p=0.000 n=10+10) GoTypes 1.17M ± 0% 1.16M ± 0% -0.93% (p=0.000 n=10+10) Compiler 4.13M ± 0% 4.09M ± 0% -1.05% (p=0.000 n=10+10) Change-Id: I6c00850d07511c2e65761c7373fc3df738499105 Reviewed-on: https://go-review.googlesource.com/32235 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: David Crawshaw <crawshaw@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Josh Bleecher Snyder authored
name old allocs/op new allocs/op delta Template 394k ± 0% 391k ± 0% -0.80% (p=0.000 n=10+10) Unicode 350k ± 0% 349k ± 0% -0.27% (p=0.000 n=10+10) GoTypes 1.18M ± 0% 1.17M ± 0% -0.92% (p=0.000 n=10+10) Compiler 4.18M ± 0% 4.14M ± 0% -1.05% (p=0.000 n=10+10) Change-Id: I838a4e2110afe6496c535b9a0ec5aa882d63a707 Reviewed-on: https://go-review.googlesource.com/32223 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Nigel Tao authored
Change-Id: Ib9309ee499fc51be2662d778430ee30089822e57 Reviewed-on: https://go-review.googlesource.com/32143Reviewed-by: Rob Pike <r@golang.org>
-
- 27 Oct, 2016 31 commits
-
-
Matthew Dempsky authored
Keys are uncommon in array and slice literals, and normalizing OARRAYLIT and OSLICELIT nodes to always use OKEY ends up not reducing complexity much. Instead, only create OKEY nodes to represent explicit keys, and recalculate implicit keys when/where necessary. Fixes #15350. name old time/op new time/op delta Template 299ms ± 9% 299ms ±12% ~ (p=0.694 n=28+30) Unicode 165ms ± 7% 162ms ± 9% ~ (p=0.084 n=27+27) GoTypes 950ms ± 9% 963ms ± 5% ~ (p=0.301 n=30+29) Compiler 4.23s ± 7% 4.17s ± 7% ~ (p=0.057 n=29+27) name old user-ns/op new user-ns/op delta Template 389M ±15% 400M ±12% ~ (p=0.202 n=30+29) Unicode 246M ±21% 232M ±22% -5.76% (p=0.006 n=28+29) GoTypes 1.34G ± 8% 1.34G ± 7% ~ (p=0.775 n=28+30) Compiler 5.91G ± 6% 5.87G ± 7% ~ (p=0.298 n=28+29) name old alloc/op new alloc/op delta Template 41.2MB ± 0% 41.2MB ± 0% ~ (p=0.085 n=30+30) Unicode 34.0MB ± 0% 31.5MB ± 0% -7.28% (p=0.000 n=30+29) GoTypes 121MB ± 0% 121MB ± 0% ~ (p=0.657 n=30+30) Compiler 511MB ± 0% 511MB ± 0% -0.01% (p=0.001 n=29+29) name old allocs/op new allocs/op delta Template 390k ± 0% 390k ± 0% ~ (p=0.225 n=30+29) Unicode 318k ± 0% 293k ± 0% -8.03% (p=0.000 n=30+29) GoTypes 1.16M ± 0% 1.16M ± 0% ~ (p=0.745 n=30+30) Compiler 4.35M ± 0% 4.35M ± 0% ~ (p=0.105 n=30+30) Change-Id: I6310739a0bfdb54f1ab8a460b2c03615ad1ff5bc Reviewed-on: https://go-review.googlesource.com/32221Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Nigel Tao authored
Change-Id: I99b9a51db29d514ebaa9c1cfde65c0b5184c0f42 Reviewed-on: https://go-review.googlesource.com/32140Reviewed-by: Rob Pike <r@golang.org>
-
Cherry Zhang authored
It looks like a typo in CL 30707. Change-Id: Ia2d013567dbd1a49901d9be0cd2d5a103e6e38cf Reviewed-on: https://go-review.googlesource.com/32187 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Keith Randall authored
For cases where we already have the ops, combine sign or zero extension with the previous load (even if the load is larger width). Update #15105 Change-Id: I76c5ddd69e1f900d2a17d35503083bd3b4978e48 Reviewed-on: https://go-review.googlesource.com/28190 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Josh Bleecher Snyder authored
Use a local map during inlining instead. Change-Id: I10cd19885e7124f812bb04a79dbda52bfebfe1a1 Reviewed-on: https://go-review.googlesource.com/32225 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Keith Randall authored
var x uint64 uint8(x >> 56) We don't need to generate any code for the uint8(). Update #15090 Change-Id: Ie1ca4e32022dccf7f7bc42d531a285521fb67872 Reviewed-on: https://go-review.googlesource.com/28191 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Keith Randall authored
When we do var x []byte = ... y := x[i:] We can't just use y.ptr = x.ptr + i, as the new pointer may point to the next object in memory after the backing array. We used to fix this by doing: y.cap = x.cap - i delta := i if y.cap == 0 { delta = 0 } y.ptr = x.ptr + delta That generates a branch in what is otherwise straight-line code. Better to do: y.cap = x.cap - i mask := (y.cap - 1) >> 63 // -1 if y.cap==0, 0 otherwise y.ptr = x.ptr + i &^ mask It's about the same number of instructions (~4, depending on what parts are constant, and the target architecture), but it is all inline. It plays nicely with CSE, and the mask can be computed in parallel with the index (in cases where a multiply is required). It is a minor win in both speed and space. Change-Id: Ied60465a0b8abb683c02208402e5bb7ac0e8370f Reviewed-on: https://go-review.googlesource.com/32022 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Robert Griesemer authored
Fixes #17637. Change-Id: I5af63b8277c0a0f9fef4880992bcb925ca088687 Reviewed-on: https://go-review.googlesource.com/32106Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Robert Griesemer authored
I had added this originally so we can play with different notations but it doesn't make sense to keep it around since gofmt will convert a type alias declaration using "=" into one using "=>" anyhow. More importantly, the spec doesn't permit it. Change-Id: Icb010b5a9976aebf877e48b3ce9d7245559ca494 Reviewed-on: https://go-review.googlesource.com/32105 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Michael Hudson-Doyle authored
Otherwise, the way the ELF dynamic linker works means that you can end up with the same itab being passed to additab twice, leading to the itab linked list having a cycle in it. Add a test to additab in runtime to catch this when it happens, not some arbitrary and surprsing time later. Fixes #17594 Change-Id: I6c82edcc9ac88ac188d1185370242dc92f46b1ad Reviewed-on: https://go-review.googlesource.com/32131 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> Reviewed-by: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Adam Langley authored
This change updates the vendored version of the poly1305 package to match the latest version from x/crypto. This pulls in this change: commit 1150b8bd09e53aea1d415621adae9bad665061a1 Author: Adam Langley <agl@golang.org> Date: Fri Oct 21 15:59:10 2016 -0700 poly1305: don't move R13 in sum_arm.s. Rather than change the value of R13 during the execution, keep R13 fixed (after the initial prelude) and always use offsets from it. This should help the runtime figure out what's going on if, say, a signal should occur while running this code. I've also trimmed the set of saved registers since Go doesn't require the callee to maintain anything except R10 and R13. Change-Id: Ifbeca73c1d964cc43bb7f8c20c61066f22fd562d Reviewed-on: https://go-review.googlesource.com/31717 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com> Change-Id: I376b3e5d53aaded891e02801bd5faa5ff758da0d Reviewed-on: https://go-review.googlesource.com/32227 Run-TryBot: Adam Langley <agl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Fixes #16014. Change-Id: I68b096df7924a3258e940c4d94ec5d06f5bdfcbb Reviewed-on: https://go-review.googlesource.com/32097Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
When MSIE sends a full file path (in "intranet mode"), it does not escape backslashes: "C:\dev\go\foo.txt", not "C:\\dev\\go\\foo.txt". No known MIME generators emit unnecessary backslash escapes for simple token characters like numbers and letters. If we see an unnecessary backslash escape, assume it is from MSIE and intended as a literal backslash. This makes Go servers deal better with MSIE without affecting the way they handle conforming MIME generators. Fixes #15664. Change-Id: Ia3b03b978317d968dc11b2f6de1df913c6bcbfcc Reviewed-on: https://go-review.googlesource.com/32175Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
CL 12905 disallowed "Bob" <""@example.com> but inadvertently also disallowed "" <bob@example.com>. Move the empty string check to apply only in the addr-spec. Fixes #14866. Change-Id: Ia0b7a1a32810aa78157ae77bd0130b78154c460d Reviewed-on: https://go-review.googlesource.com/32176Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Updates http2 to x/net git rev b626cca for: http2: implement support for server push https://golang.org/cl/29439 http2: reject stream self-dependencies https://golang.org/cl/31858 http2: optimize server frame writes https://golang.org/cl/31495 http2: interface to support pluggable schedulers https://golang.org/cl/25366 (no user-visible behavior change or API surface) http2: add Server.IdleTimeout https://golang.org/cl/31727 http2: make Server return conn protocol errors on bad idle stream frames https://golang.org/cl/31736 http2: fix optimized write scheduling https://golang.org/cl/32217 (fix for CL 31495 above) Change-Id: Ie894c72943d355115c8391573bf6b96dc1bd5894 Reviewed-on: https://go-review.googlesource.com/32215 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tom Bergan <tombergan@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Assembly copied from the clock_gettime(CLOCK_MONOTONIC) call in runtime.nanotime in these files and then modified to use CLOCK_REALTIME. Also comment system call numbers in a few other files. Fixes #11222. Change-Id: Ie132086de7386f865908183aac2713f90fc73e0d Reviewed-on: https://go-review.googlesource.com/32177Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Robert Griesemer authored
For #16339. Change-Id: I7d912ea634bbfacfc0217f97dccb270fde06f16b Reviewed-on: https://go-review.googlesource.com/30601Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
For #17496. Change-Id: I671a59581c54d17bc272767eeb7b2742b54eca38 Reviewed-on: https://go-review.googlesource.com/32183 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
This CL completes support for alias declarations in the compiler. Also: - increased export format version - updated various comments For #16339. Fixes #17487. Change-Id: Ic6945fc44c0041771eaf9dcfe973f601d14de069 Reviewed-on: https://go-review.googlesource.com/32090 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Adam Langley authored
Currently, the selection of a client certificate done internally based on the limitations given by the server's request and the certifcates in the Config. This means that it's not possible for an application to control that selection based on details of the request. This change adds a callback, GetClientCertificate, that is called by a Client during the handshake and which allows applications to select the best certificate at that time. (Based on https://golang.org/cl/25570/ by Bernd Fix.) Fixes #16626. Change-Id: Ia4cea03235d2aa3c9fd49c99c227593c8e86ddd9 Reviewed-on: https://go-review.googlesource.com/32115Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
The receiver itself is not transmitted and does not need to be marshalable by encoding/gob. Fixes #16803. Change-Id: I42a3603fb7d3b36c97dcc2e51a398cd65ec3227d Reviewed-on: https://go-review.googlesource.com/32094 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Adam Langley authored
The SignatureAndHashAlgorithm from TLS 1.2[1] is being changed to SignatureScheme in TLS 1.3[2]. (The actual values are compatible however.) Since we expect to support TLS 1.3 in the future, we're already using the name and style of SignatureScheme in the recently augmented ClientHelloInfo. As this is public API, it seems that SignatureScheme should have its own type and exported values, which is implemented in this change. [1] https://tools.ietf.org/html/rfc5246#section-7.4.1.4.1 [2] https://tools.ietf.org/html/draft-ietf-tls-tls13-18#section-4.2.3 Change-Id: I0482755d02bb9a04eaf075c012696103eb806645 Reviewed-on: https://go-review.googlesource.com/32119Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Adam Langley <agl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Adam Langley authored
Since a root certificate is self-signed, it's a valid child of itself. If a root certificate appeared both in the pool of intermediates and roots the verification code could find a chain which included it twice: first as an intermediate and then as a root. (Existing checks prevented the code from looping any more.) This change stops the exact same certificate from appearing twice in a chain. This simplifies the results in the face of the common configuration error of a TLS server returning a root certificate. (This should also stop two different versions of the “same” root appearing in a chain because the self-signature on one will not validate for the other.) Fixes #16800. Change-Id: I004853baa0eea27b44d47b9b34f96113a92ebac8 Reviewed-on: https://go-review.googlesource.com/32121 Run-TryBot: Adam Langley <agl@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Keith Randall authored
Fixes a bug where assignments that should come after a call were instead being issued before the call. Fixes #17596 Fixes #17618 Change-Id: Ic9ae4c34ae38fc4ccd0604b65345b05896a2c295 Reviewed-on: https://go-review.googlesource.com/32226 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-
Josh Bleecher Snyder authored
IsHiddenClosure is more descriptive. Change-Id: I06651072925a958b148b64ab0db3a9bfc839af9b Reviewed-on: https://go-review.googlesource.com/32224 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Cherry Zhang authored
The mechanism is initially introduced (and reviewed) in CL 30597 on S390X. Change-Id: I83024d2fc84c8efc23fbda52b3ad83073f42cb93 Reviewed-on: https://go-review.googlesource.com/32179Reviewed-by: David Chase <drchase@google.com>
-
Cherry Zhang authored
The mechanism is initially introduced (and reviewed) in CL 30597 on S390X. Change-Id: I12fbe6e9269b2936690e0ec896cb6b5aa40ad7da Reviewed-on: https://go-review.googlesource.com/32180Reviewed-by: David Chase <drchase@google.com>
-
Cherry Zhang authored
DUFFZERO was disabled due to issue #12108. CL 27592 fixed it and enabled DUFFZERO in general, but this one was forgotten. Change-Id: I0476a3a0524c7b54218f7a747bdba76cd823fbc5 Reviewed-on: https://go-review.googlesource.com/32181 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Vladimir Stefanovic authored
Change-Id: I8111ceb6960364166aa8a445f4d6d8b0581d371e Reviewed-on: https://go-review.googlesource.com/31513Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Josh Bleecher Snyder authored
sort.Sort's argument always escapes. cse generates many calls to sort.Sort. Set up a single escaping variable and re-use it across loops. name old alloc/op new alloc/op delta Template 40.7MB ± 0% 40.2MB ± 0% -1.24% (p=0.000 n=15+15) Unicode 33.4MB ± 0% 33.3MB ± 0% -0.09% (p=0.000 n=15+15) GoTypes 121MB ± 0% 119MB ± 0% -1.48% (p=0.000 n=14+15) Compiler 474MB ± 0% 465MB ± 0% -1.94% (p=0.000 n=14+15) name old allocs/op new allocs/op delta Template 405k ± 0% 394k ± 0% -2.64% (p=0.000 n=15+15) Unicode 350k ± 0% 350k ± 0% -0.14% (p=0.000 n=14+15) GoTypes 1.21M ± 0% 1.18M ± 0% -3.07% (p=0.000 n=15+14) Compiler 4.37M ± 0% 4.18M ± 0% -4.39% (p=0.000 n=15+15) Change-Id: I68cf56dafa0f3ea778826eea19908bd761556154 Reviewed-on: https://go-review.googlesource.com/32220 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Nigel Tao authored
While https://www.w3.org/TR/PNG/#5ChunkOrdering says that tRNS's ordering constraint is "After PLTE; before IDAT", it is legal for a tRNS chunk to occur without a PLTE chunk at all, for greyscale and truecolor transparency as opposed to palette-based transparency. See https://www.w3.org/TR/PNG/#11transinfo Fixes #17511. Change-Id: I047b0b01d78a1cda65e00eeac229bb972cda431d Reviewed-on: https://go-review.googlesource.com/32139Reviewed-by: Rob Pike <r@golang.org>
-