- 21 Sep, 2016 12 commits
-
-
Lynn Boger authored
Some applications built with Go on ppc64x with external linking can fail to link with relocation truncation errors if the elf text section that is generated is larger than 2^26 bytes and that section contains a call instruction (bl) which calls a function beyond the limit addressable by the 24 bit field in the instruction. This solution consists of generating multiple text sections where each is small enough to allow the GNU linker to resolve the calls by generating long branch code where needed. Other changes were added to handle differences in processing when multiple text sections exist. Some adjustments were required to the computation of a method's address when using the method offset table when there are multiple text sections. The number of possible section headers was increased to allow for up to 128 text sections. A test case was also added. Fixes #15823. Change-Id: If8117b0e0afb058cbc072258425a35aef2363c92 Reviewed-on: https://go-review.googlesource.com/27790 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Suyash authored
partially addresses #16360 Change-Id: I8274825b9ca6aec46294c8513b4795b0eb3062a2 Reviewed-on: https://go-review.googlesource.com/28992Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
The new Resolver type (a struct) has 9 Lookup methods, all taking a context.Context. There's now a new DefaultResolver global, like http's DefaultTransport and DefaultClient. net.Dialer now has an optional Resolver field to set the Resolver. This also does finishes some resolver cleanup internally, deleting lookupIPMerge and renaming lookupIPContext into Resolver.LookupIPAddr. The Resolver currently doesn't let you tweak much, but it's a struct specifically so we can add knobs in the future. Currently I just added a bool to force the pure Go resolver. In the future we could let people provide an interface to implement the methods, or add a Timeout time.Duration, which would wrap all provided contexts in a context.WithTimeout. Fixes #16672 Change-Id: I7ba1f886704f06def7b6b5c4da9809db51bc1495 Reviewed-on: https://go-review.googlesource.com/29440 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Thomas de Zeeuw authored
This change fills the ContentLength field in the http.Response returned by ResponseRecorder.Result. Fixes #16952. Change-Id: I9c49b1bf83e3719b5275b03a43aff5033156637d Reviewed-on: https://go-review.googlesource.com/28302Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michal Bohuslávek authored
Change-Id: I6ea8650927e7946c6fd4659f400fd91ddaae68af Reviewed-on: https://go-review.googlesource.com/29510Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
These used to be necessary when racing with updates to the mark bit, but since the mark bit is no longer in the bitmap and the checkmark is only updated with the world stopped, we can now always use regular writes to update the type information in the heap bitmap. Somewhat surprisingly, this has basically no overall performance effect beyond the usual noise, but it does clean up the code. Change-Id: I3933d0b4c0bc1c9bcf6313613515c0b496212105 Reviewed-on: https://go-review.googlesource.com/29277 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
-
Mikio Hara authored
Change-Id: I808fab97076493a95b0b5eb0ad15645099f54aee Reviewed-on: https://go-review.googlesource.com/29492Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Mikio Hara authored
This change fixes the broken build caused by CL 23780. Change-Id: I142cf8a1af033d036d57ac56e9e21ea925d922d4 Reviewed-on: https://go-review.googlesource.com/29490 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Change-Id: I6634f70d6bd1a4eced47eda69a2d9b207d222a1b Reviewed-on: https://go-review.googlesource.com/29470 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Matthew Dempsky authored
Change-Id: Idcb5a8d6676aa38b4ebd0975edd2068386f5ca83 Reviewed-on: https://go-review.googlesource.com/29449 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Yasuhiro Matsumoto authored
It is possible (and common) for Windows systems to use a different codepage for console applications from that used on normal windowed application (called ANSI codepage); for instance, most of the western Europe uses CP850 for console (for backward compatibility with MS-DOS), while windowed applications use a different codepage depending on the country (eg: CP1252 aka Latin-1). The usage being changed with this commit is specifically related to decoding input coming from the console, so the previous usage of the ANSI codepage was wrong. Also fixes an issue that previous did convert bytes as NFD. Go is designed to handle single Unicode code point. This fix change behaivor to NFC. Fixes #16857. Change-Id: I4f41ae83ece47321b6e9a79a2087ecbb8ac066dd Reviewed-on: https://go-review.googlesource.com/27575Reviewed-by: Hiroshi Ioka <hirochachacha@gmail.com> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
-
Brad Fitzpatrick authored
Updates #16360 Change-Id: I80b981aa291a8e16d2986d4a2dfd84d3819bf488 Reviewed-on: https://go-review.googlesource.com/29443 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
-
- 20 Sep, 2016 18 commits
-
-
Brad Fitzpatrick authored
Fixes #17170 Change-Id: I939f087df133710495fdf6f09040051cb9b176d7 Reviewed-on: https://go-review.googlesource.com/29442Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Keith Randall authored
Move a value to the block which is the lowest common ancestor in the dominator tree of all of its uses. Make sure not to move a value into a loop. Makes the tighten pass on average (across go1 benchmarks) 40% slower. Still not a big contributor to overall compile time. Binary size is just a tad smaller. name old time/op new time/op delta BinaryTree17-12 2.77s ± 9% 2.76s ± 9% ~ (p=0.878 n=8+8) Fannkuch11-12 2.75s ± 1% 2.74s ± 1% ~ (p=0.232 n=8+7) FmtFprintfEmpty-12 48.9ns ± 9% 47.7ns ± 0% ~ (p=0.431 n=8+8) FmtFprintfString-12 143ns ± 8% 142ns ± 1% ~ (p=0.257 n=8+7) FmtFprintfInt-12 123ns ± 1% 122ns ± 1% -1.04% (p=0.026 n=7+8) FmtFprintfIntInt-12 195ns ± 7% 185ns ± 0% -5.32% (p=0.000 n=8+8) FmtFprintfPrefixedInt-12 194ns ± 4% 195ns ± 0% +0.81% (p=0.015 n=7+7) FmtFprintfFloat-12 267ns ± 0% 268ns ± 0% +0.37% (p=0.001 n=7+6) FmtManyArgs-12 800ns ± 0% 762ns ± 1% -4.78% (p=0.000 n=8+8) GobDecode-12 7.67ms ± 2% 7.60ms ± 2% ~ (p=0.234 n=8+8) GobEncode-12 6.55ms ± 0% 6.57ms ± 1% ~ (p=0.336 n=7+8) Gzip-12 237ms ± 0% 238ms ± 0% +0.40% (p=0.017 n=7+7) Gunzip-12 40.8ms ± 0% 40.2ms ± 0% -1.52% (p=0.000 n=7+8) HTTPClientServer-12 208µs ± 3% 209µs ± 3% ~ (p=0.955 n=8+7) JSONEncode-12 16.2ms ± 1% 17.2ms ±11% +5.80% (p=0.001 n=7+8) JSONDecode-12 57.3ms ±12% 55.5ms ± 3% ~ (p=0.867 n=8+7) Mandelbrot200-12 4.68ms ± 6% 4.46ms ± 1% ~ (p=0.442 n=8+8) GoParse-12 4.27ms ±44% 3.42ms ± 1% -19.95% (p=0.005 n=8+8) RegexpMatchEasy0_32-12 75.1ns ± 0% 75.8ns ± 1% +0.99% (p=0.002 n=7+7) RegexpMatchEasy0_1K-12 963ns ± 0% 1021ns ± 6% +5.98% (p=0.001 n=7+7) RegexpMatchEasy1_32-12 72.4ns ±11% 70.8ns ± 1% ~ (p=0.368 n=8+8) RegexpMatchEasy1_1K-12 394ns ± 1% 399ns ± 0% +1.23% (p=0.000 n=8+7) RegexpMatchMedium_32-12 114ns ± 0% 115ns ± 1% +0.63% (p=0.021 n=7+7) RegexpMatchMedium_1K-12 35.9µs ± 0% 37.6µs ± 1% +4.72% (p=0.000 n=7+8) RegexpMatchHard_32-12 1.93µs ± 2% 1.91µs ± 0% -0.91% (p=0.001 n=7+7) RegexpMatchHard_1K-12 60.2µs ± 3% 61.2µs ±10% ~ (p=0.442 n=8+8) Revcomp-12 404ms ± 1% 406ms ± 1% ~ (p=0.054 n=8+7) Template-12 64.6ms ± 1% 63.5ms ± 1% -1.66% (p=0.000 n=8+8) TimeParse-12 347ns ± 8% 309ns ± 0% -11.13% (p=0.000 n=8+7) TimeFormat-12 343ns ± 4% 331ns ± 0% -3.34% (p=0.000 n=8+7) Change-Id: Id6da1239ddd4d0cb074ff29cffb06302d1c6d08f Reviewed-on: https://go-review.googlesource.com/28712 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Keith Randall authored
Change-Id: If2cf3c5a29afc6cf74c3b08b9745e950231ead37 Reviewed-on: https://go-review.googlesource.com/29441Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Damien Neil authored
Don't panic, crash, or return references to uninitialized memory when ParseDirent is passed invalid input. Move common dirent parsing to syscall.go with minimal platform-specific functions in syscall_$GOOS.go. Fixes #15653 Change-Id: I5602475e02321fe381064488401c14b33bec6886 Reviewed-on: https://go-review.googlesource.com/23780 Run-TryBot: Damien Neil <dneil@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
Issue #17099 shows a failure that indicates we rescanned a stack twice concurrently during mark termination, which suggests that the rescan list became inconsistent. Add a simple check when we dequeue something from the rescan list that it claims to be at the index where we found it. Change-Id: I6a267da4154a2e7b7d430cb4056e6bae978eaf62 Reviewed-on: https://go-review.googlesource.com/29280 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
-
Austin Clements authored
The comment block at the end of the heap profile includes *almost* everything from MemStats. Add the missing fields. These are useful for debugging RSS that has gone to GC-internal data structures. Change-Id: I0ee8a918d49629e28fd8fd2bf6861c4529461c24 Reviewed-on: https://go-review.googlesource.com/29276 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
-
Cherry Zhang authored
On ARM, DIV, DIVU, MOD, MODU are pseudo instructions that makes runtime calls _div/_udiv/_mod/_umod, which themselves are wrappers of udiv. The udiv function does the real thing. Instead of generating these pseudo instructions, call to udiv directly. This removes one layer of wrappers (which has an awkward way of passing argument), and also allows combining DIV and MOD if both results are needed. Change-Id: I118afc3986db3a1daabb5c1e6e57430888c91817 Reviewed-on: https://go-review.googlesource.com/29390Reviewed-by: David Chase <drchase@google.com>
-
Jaana Burcu Dogan authored
Tracing happens at the http.Trace level. Fix the example to demostrate tracing in the lifecycle of a RoundTrip. Updates #17152. Change-Id: Ic7d7bcc550176189206185482e8962dbf1504ff1 Reviewed-on: https://go-review.googlesource.com/29431Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Hudson-Doyle authored
This time in elf.go. Change-Id: Ifaf71742ebbc9aadc8606c39ea2d417ae5cc7e0d Reviewed-on: https://go-review.googlesource.com/29450 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
Change-Id: Iee8f773355870f2333637a093e51c5fd36e5a6e5 Reviewed-on: https://go-review.googlesource.com/29349 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
Specifically Addstring, Addbytes and Symgrow. Change-Id: Ia74093bfcf9f360bf223accbc8feef54a7f059c9 Reviewed-on: https://go-review.googlesource.com/29348 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
Change-Id: I25d9f74cb52e6fd4f2ad4b1c8b7102efadbc7481 Reviewed-on: https://go-review.googlesource.com/29344 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
Done with two eg templates: package p import ( "cmd/link/internal/ld" ) func before(ctxt *ld.Link, name string, v int) *ld.Symbol { return ld.Linklookup(ctxt, name, v) } func after(ctxt *ld.Link, name string, v int) *ld.Symbol { return ctxt.Syms.Lookup(name, v) } package p import ( "cmd/link/internal/ld" ) func before(ctxt *ld.Link, name string, v int) *ld.Symbol { return ld.Linkrlookup(ctxt, name, v) } func after(ctxt *ld.Link, name string, v int) *ld.Symbol { return ctxt.Syms.ROLookup(name, v) } Change-Id: I00647dbf62294557bd24c29ad1f108fc786335f1 Reviewed-on: https://go-review.googlesource.com/29343 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
Mostly done with sed. Change-Id: Ic8c534a3fdd332b5420d062ee85bb77a30ad1efb Reviewed-on: https://go-review.googlesource.com/29346 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
Mechanical refactorings to follow. Change-Id: I9b98e69a58c3cba7c7d1d3e3f600d4ed99d4fce2 Reviewed-on: https://go-review.googlesource.com/29342 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Crawshaw authored
This makes it possible for cmd/compile, when run with -dynlink on darwin/amd64, to generate TLS_LE relocations which the linker then turns into the appropriate PC-relative GOT load. Change-Id: I1a71da432608bdb108ff66c22de600100209c873 Reviewed-on: https://go-review.googlesource.com/29393Reviewed-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: I58253a6cd2d77a9319c0783afb0d92cd5a88a7f7 Reviewed-on: https://go-review.googlesource.com/29370 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
David Crawshaw authored
Instead of using ctxt.Cursym, Errorf takes an explicit *Symbol parameter. This removes most uses of Cursym and means the *Link context object is needed in fewer parts of the linker. All transformations done manually, as wiring Cursym is tricky. Change-Id: Ief88b00b73904224675c0035684c3a84c19249d7 Reviewed-on: https://go-review.googlesource.com/29369Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 19 Sep, 2016 10 commits
-
-
Keith Randall authored
Change-Id: Icfb38f492ae71432858b7104fcba18a9ba835192 Reviewed-on: https://go-review.googlesource.com/29410Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
At least, I assume it's meant to be here. It makes no sense at all where it currently is. Change-Id: Ic6a6c112c3dcf1318256d7d602168c3446b55412 Reviewed-on: https://go-review.googlesource.com/29339 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Tormod Erevik Lea authored
Example on linux_amd64 for 'go tool vet -h': Before: Usage of /usr/local/go/pkg/tool/linux_amd64/vet: After: Usage of vet: Change-Id: I11cb16b656bd097062d57a8c7441fbe66caaef78 Reviewed-on: https://go-review.googlesource.com/29294Reviewed-by: Rob Pike <r@golang.org>
-
Rob Pike authored
The code scanned for an integer after a decimal point, which meant things could overflow if the number was very precise (0.1234123412341234123412342134s). This fix changes the parser to stop adding precision once we run out of bits, rather than trigger an erroneous overflow. We could parse durations using floating-point arithmetic, but since the type is int64 and float64 has only has 53 bits of precision, that would be imprecise. Fixes #15011. Change-Id: If85e22b8f6cef12475e221169bb8f493bb9eb590 Reviewed-on: https://go-review.googlesource.com/29338Reviewed-by: Costin Chirvasuta <costinc@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
Also adds the 'find leftmost one' instruction (FLOGR) and replaces the WORD-encoded use of FLOGR in math/big with it. Change-Id: I18e7cd19e75b8501a6ae8bd925471f7e37ded206 Reviewed-on: https://go-review.googlesource.com/29372Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Michael Munday <munday@ca.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Carlos Eduardo Seo authored
The current implementation for Power architecture does not include the vector (Altivec) registers. This adds the 32 VMX registers and the most commonly used instructions: X-form loads/stores; VX-form logical operations, add/sub, rotate/shift, count, splat, SHA Sigma and AES cipher; VC-form compare; and VA-form permute, shift, add/sub and select. Fixes #15619 Change-Id: I544b990631726e8fdfcce8ecca0aeeb72faae9aa Reviewed-on: https://go-review.googlesource.com/25600 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com> Reviewed-by: David Chase <drchase@google.com>
-
Emmanuel Odeke authored
Updates #16360. Change-Id: I75714d2b5f095fe39fd81edfa6dd9e44d7c44da1 Reviewed-on: https://go-review.googlesource.com/29375 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
We're dropping this behavior in favor of runtime.KeepAlive. Implement runtime.KeepAlive as an intrinsic. Update #15843 Change-Id: Ib60225bd30d6770ece1c3c7d1339a06aa25b1cbc Reviewed-on: https://go-review.googlesource.com/28310 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Brady Sullivan authored
Change-Id: Ie1b08215c02ce3ec72a4752f4b800f23345ff99d Reviewed-on: https://go-review.googlesource.com/29362Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
We compute a lot of stuff based off the CFG: postorder traversal, dominators, dominator tree, loop nest. Multiple phases use this information and we end up recomputing some of it. Add a cache for this information so if the CFG hasn't changed, we can reuse the previous computation. Change-Id: I9b5b58af06830bd120afbee9cfab395a0a2f74b2 Reviewed-on: https://go-review.googlesource.com/29356Reviewed-by: David Chase <drchase@google.com>
-