- 20 Sep, 2016 17 commits
-
-
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 13 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>
-
Keith Randall authored
Change-Id: I571f03af6f791e78e7e18addcc310eb25747cdcf Reviewed-on: https://go-review.googlesource.com/29351Reviewed-by: David Chase <drchase@google.com> Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Keith Randall authored
No point in calling a function when we can build the interface using a known type (or itab) and the address of a local. Get rid of third arg (preallocated stack space) to convT2{I,E}. Makes go binary smaller by 0.2% benchmark old ns/op new ns/op delta BenchmarkEfaceInteger-8 16.7 10.1 -39.52% Update #17118 Update #15375 Change-Id: I9724a1f802bfa1e3957bf1856b55558278e198a2 Reviewed-on: https://go-review.googlesource.com/29373 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Rob Pike authored
Was missing a title in the documentation, so it formatted wrong. Fixes #17124 Change-Id: Ie8a9c36fbc54eed7d8a761f89a088e582b8c062d Reviewed-on: https://go-review.googlesource.com/29340Reviewed-by: Andrew Gerrand <adg@golang.org>
-
- 18 Sep, 2016 3 commits
-
-
Michael Hudson-Doyle authored
They are trivially available in the few places they are needed. Change-Id: I6544692e9027076ec9e6e9a295c66457039e55e1 Reviewed-on: https://go-review.googlesource.com/29332 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
Doing this revealed some dead code. Change-Id: I5202fcc3f73e3dfddfea3ec7b772e16da51195da Reviewed-on: https://go-review.googlesource.com/29331 Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Cherry Zhang authored
Fix mips64le build. Change-Id: Icf1b4901655463f582b49054a88edfb06ad6c676 Reviewed-on: https://go-review.googlesource.com/29281 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
- 17 Sep, 2016 7 commits
-
-
Cherry Zhang authored
This aliases to Xadd64. Change-Id: I95d49e1d03eecc242e9e6fd4b2742b1c1a1d5ade Reviewed-on: https://go-review.googlesource.com/29274 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
David Crawshaw authored
Until a few weeks ago, bionic, the Andoid libc, incorrectly returned const char* (instead of char*) from dlerror(3). https://android.googlesource.com/platform/bionic/+/5e071a18ce88d93fcffaebb9e0f62524ae504908 Change-Id: I30d33240c63a9f35b6c20ca7e3928ad33bc5e33f Reviewed-on: https://go-review.googlesource.com/29352 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Keith Randall authored
%s is no longer valid. Use %v instead. Change-Id: I5ec4fa6a9280082c1a0c75fd1cf94b4bb8096f5c Reviewed-on: https://go-review.googlesource.com/29365Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Updates #16357. Change-Id: I35f938d675ca5c31f65c4419ee0732bbc593b5cb Reviewed-on: https://go-review.googlesource.com/29368 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Keep Plists in a slice instead of a linked list. Eliminate unnecessary fields. Also, while here remove gc's unused breakpc and continpc vars. Change-Id: Ia04264036c0442843869965d247ccf68a5295115 Reviewed-on: https://go-review.googlesource.com/29367 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Trey Lawrence authored
The compiler incorrectly will error when comparing a nil pointer interface to a nil pointer of any other type. Example: (*int)(nil) == interface{}(nil) Will error with "gc: illegal constant expression: *int == interface {}" Fixes #16702 Change-Id: I1a15d651df2cfca6762b1783a28b377b2e6ff8c6 Reviewed-on: https://go-review.googlesource.com/27591 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Matthew Dempsky authored
Replace the AGLOBL pseudo-op with a method to directly register an LSym as a global. Similar to how we previously already replaced the ADATA pseudo-op with directly writing out data bytes. Passes toolstash -cmp. Change-Id: I3631af0a2ab5798152d0c26b833dc309dbec5772 Reviewed-on: https://go-review.googlesource.com/29366 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
-