- 20 Mar, 2016 9 commits
-
-
Ian Lance Taylor authored
Historically ODOT and friends have been considered to cost an extra budget point when deciding whether they should be inlined, because they had an ONAME node that represented the name to the right of the dot. This doesn't really make sense, as in general that symbol does not add any extra instructions; it just affects the offset of the load or store instruction. And the ONAME node is gone now. So, remove the extra cost. This does not pass toolstash -cmp, as it changes inlining decisions. For example, mspan.init in runtime/mheap.go is now considered to be an inlining candidate. Change-Id: I5ad27f08c66fd5daa4c8472dd0795df989183f5e Reviewed-on: https://go-review.googlesource.com/20891Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shahar Kohanim authored
name old s/op new s/op delta LinkCmdGo 0.59 ± 6% 0.58 ± 5% -1.61% (p=0.000 n=99+99) GOGC=off: name old s/op new s/op delta LinkCmdGo 0.50 ± 3% 0.49 ± 3% -1.28% (p=0.000 n=98+99) Change-Id: I737ae056214999441a210c69ec0cf4febc39a715 Reviewed-on: https://go-review.googlesource.com/20914Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shahar Kohanim authored
Reduces size of archives in pkg/linux_amd64 by 3% from 41.5MB to 40.2MB Change-Id: Id64ca7995de8dd84c9e7ce1985730927cf4bfd66 Reviewed-on: https://go-review.googlesource.com/20912Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Shahar Kohanim authored
Speeds up linking cmd/go by ~1.5%: name old s/op new s/op delta LinkCmdGo 0.58 ± 6% 0.57 ± 5% -1.21% (p=0.000 n=98+99) Less noisy benchmark, with garbage collection off: name old s/op new s/op delta LinkCmdGo 0.49 ± 2% 0.49 ± 2% -1.79% (p=0.000 n=98+99) Change-Id: I0123bcb66a87cbc4d703356e4c5a4035032012ec Reviewed-on: https://go-review.googlesource.com/20916Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Martin Möhrmann authored
Deduplicate the verb switch for signed and unsigned integer formatting. Make names of integer related functions consistent with names of other fmt functions. Consolidate basic integer tests. Change-Id: I0c19c24f1c2c06a3b1a4d7d377dcdac3b36bb0f5 Reviewed-on: https://go-review.googlesource.com/20831 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Matthew Dempsky authored
In golang.org/cl/20602, I changed the semantics of Eqtype to stop checking the receiver parameters for type equality, and pushed this responsibility to addmethod (the only Eqtype caller that cared). However, I accidentally made the check stricter by making it start requiring that receiver names were identical. In general, this is a non-problem because the receiver names in export data will always match the original source. But running GO_GCFLAGS=-newexport ./all.bash at one point tries to load both old and new format export data for package sync, which reveals the problem. (See golang.org/issue/14877 for details.) Easy fix: just check the receiver type for type equality in addmethod, instead of the entire receiver parameter list. Fixes #14877. Change-Id: If10b79f66ba58a1b7774622b4fbad1916aba32f1 Reviewed-on: https://go-review.googlesource.com/20906 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Convert remaining uses to typecheckslice. Passes toolstash -cmp. Change-Id: I6ed0877386fb6c0b036e8ee5a228433343855abd Reviewed-on: https://go-review.googlesource.com/20905 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Josh Bleecher Snyder authored
There are plenty more, but these cover most of the trivial cases, and all the cases that showed up in profiling. name old time/op new time/op delta Template 331ms ± 3% 327ms ± 6% ~ (p=0.143 n=10+10) Unicode 183ms ± 4% 180ms ± 2% ~ (p=0.114 n=9+8) GoTypes 1.12s ± 4% 1.07s ± 1% -4.34% (p=0.000 n=10+9) Compiler 5.16s ± 2% 5.04s ± 2% -2.24% (p=0.001 n=10+9) MakeBash 41.7s ± 2% 42.3s ± 1% +1.51% (p=0.000 n=10+10) name old alloc/op new alloc/op delta Template 63.4MB ± 0% 63.1MB ± 0% -0.42% (p=0.000 n=10+10) Unicode 43.2MB ± 0% 43.1MB ± 0% -0.22% (p=0.000 n=9+10) GoTypes 220MB ± 0% 219MB ± 0% -0.57% (p=0.000 n=8+10) Compiler 978MB ± 0% 975MB ± 0% -0.30% (p=0.000 n=10+10) name old allocs/op new allocs/op delta Template 702k ± 0% 686k ± 0% -2.35% (p=0.000 n=10+10) Unicode 548k ± 0% 542k ± 0% -1.09% (p=0.000 n=10+10) GoTypes 2.17M ± 0% 2.09M ± 0% -3.61% (p=0.000 n=10+10) Compiler 9.33M ± 0% 9.15M ± 0% -1.93% (p=0.000 n=10+10) Change-Id: I3a3d7f2d56876427b04cfedc7302d7f496d5bb65 Reviewed-on: https://go-review.googlesource.com/20904 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Keith Randall authored
Most 64-bit x86 ops can only take a signed 32-bit constant. Clean up our rewrite rules to enforce this restriction. Modify the assembler to fail if the offset does not fit in the instruction. That last check triggers a few times on weird testing code. Suppress those errors if the compiler itself generated errors. Fixes #14862 Change-Id: I76559af035b38483b1e59621a8029fc66b3a5d1e Reviewed-on: https://go-review.googlesource.com/20815Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-
- 19 Mar, 2016 3 commits
-
-
Martin Möhrmann authored
Changes the integer function to restore the original f.zero value and therefore padding type before returning. Change-Id: I456449259a3d39bd6d62e110553120c31ec63f23 Reviewed-on: https://go-review.googlesource.com/20512Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Martin Möhrmann authored
handleMethods can format Error() and String() directly as its known these return strings that can be directly printed using fmtString. Remove the obsolete depth argument from handleMethods. Remove the depth argument from printArg since it is only ever called with depth set to 0. Recursion for formatting complex arguments is handled only by printValue which keeps track of depth. Change-Id: I4c4be588751de12ed999e7561a51bc168eb9eb2d Reviewed-on: https://go-review.googlesource.com/20911 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Ian Lance Taylor authored
The Node type ODOT and its variants all represent a selector, with a simple name to the right of the dot. Before this change this was represented by using an ONAME Node in the Right field. This ONAME node served no useful purpose. This CL changes these Node types to store the symbol in the Sym field instead, thus not requiring allocating a Node for each selector. When compiling x/tools/go/types this CL eliminates nearly 5000 calls to newname and reduces the total number of Nodes allocated by about 6.6%. It seems to cut compilation time by 1 to 2 percent. Getting this right was somewhat subtle, and I added two dubious changes to produce the exact same output as before. One is to ishairy in inl.go: the ONAME node increased the cost of ODOT and friends by 1, and I retained that, although really ODOT is not more expensive than any other node. The other is to varexpr in walk.go: because the ONAME in the Right field of an ODOT has no class, varexpr would always return false for an ODOT, although in fact for some ODOT's it seemingly ought to return true; I added an && false for now. I will send separate CLs, that will break toolstash -cmp, to clean these up. This CL passes toolstash -cmp. Change-Id: I4af8a10cc59078c436130ce472f25abc3a9b2f80 Reviewed-on: https://go-review.googlesource.com/20890 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 18 Mar, 2016 25 commits
-
-
Todd Neal authored
Consider functions with an ODCLCONST for inlining and modify exprfmt to ignore those nodes when exporting. Don't add symbols to the export list if there is no definition. This occurs when OLITERAL symbols are looked up via Pkglookup for non-exported symbols. Fixes #7655 Change-Id: I1de827850f4c69e58107447314fe7433e378e069 Reviewed-on: https://go-review.googlesource.com/20773 Run-TryBot: Todd Neal <todd@tneal.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Keith Randall authored
Change-Id: I5a43c354f36184ae64a52268023c3222da3026d8 Reviewed-on: https://go-review.googlesource.com/20880 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Todd Neal <todd@tneal.org>
-
Keith Randall authored
Missed this in review of 20812 Change-Id: I01e220499dcd58e1a7205e2a577dd9630a8b7174 Reviewed-on: https://go-review.googlesource.com/20819Reviewed-by: Keith Randall <khr@golang.org>
-
Martin Möhrmann authored
Remove rewriting of flags before calling formatters. Change Flag method to directly take plusV and sharpV flags into account when reporting if plus or sharp flag is set. Change-Id: Ic3423881ad89e5a5f9fff5ab59e842062394ef6d Reviewed-on: https://go-review.googlesource.com/20859 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Keith Randall authored
benchmark old ns/op new ns/op delta BenchmarkAlignedLoad-160 8.67 7.42 -14.42% BenchmarkUnalignedLoad-160 8.63 7.37 -14.60% Change-Id: Id4609d7b4038c4d2ec332efc4fe6f1adfb61b82b Reviewed-on: https://go-review.googlesource.com/20812Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Chase authored
This ought to revert the bad effects of https://go-review.googlesource.com/#/c/20775/ If you don't pass BOOT_GO_GCFLAGS, you get the old behavior. Tweaked to allow multiple space-separated flags in BOOT_GO_GCFLAGS. Change-Id: I2a22a04211b4535d1c5a8ec7a8a78cb051161c31 Reviewed-on: https://go-review.googlesource.com/20871 Run-TryBot: David Chase <drchase@google.com> Reviewed-by: Russ Cox <rsc@golang.org>
-
Martin Möhrmann authored
Change-Id: I0ec775c51f461c6f0cbff88e796a7af55b736fcb Reviewed-on: https://go-review.googlesource.com/20838Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Marcel van Lohuizen authored
Change-Id: I6eb91ea73ef887b025e5a8de1dd55f30618e1aa6 Reviewed-on: https://go-review.googlesource.com/20857Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alan Donovan authored
(Corresponding x/tools/go/gcimporter change is https://go-review.googlesource.com/#/c/20827/) Change-Id: I64e7fee2e273d387f1c51b87986294489978d250 Reviewed-on: https://go-review.googlesource.com/20828Reviewed-by: Robert Griesemer <gri@golang.org>
-
Marcel van Lohuizen authored
plan9, nacl, and netbsd to be precise. Only the first test causes a hang, but just to be sure. Change-Id: I400bb356ee2a0cf12c8666c95af79c924d1629aa Reviewed-on: https://go-review.googlesource.com/20839 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
Change-Id: If45410a2d7e48d1c9e6800cd98f81dd89024832c Reviewed-on: https://go-review.googlesource.com/20852Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
Change-Id: I2e26717f2563d7633ffd15f4adf63c3d0ee3403f Reviewed-on: https://go-review.googlesource.com/20856 Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
Change-Id: Ie79c16d6e61b3baa274069528cf883b22fd255fe Reviewed-on: https://go-review.googlesource.com/20855 Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
Change-Id: I58c4a75168fd1f797a25735c4151f501f0475332 Reviewed-on: https://go-review.googlesource.com/20854Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
Change-Id: I9e887a0b32baf0adc85fa9e4b85b319e8ef333e9 Reviewed-on: https://go-review.googlesource.com/20853Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
Change-Id: I0f4b6752ecc8b4945ecfde627cdec13fc4bb6a69 Reviewed-on: https://go-review.googlesource.com/20850Reviewed-by: Russ Cox <rsc@golang.org>
-
Todd Neal authored
Phi splitting sometimes leads to a phi with only a single predecessor. This must be replaced with a copy to maintain a valid SSA form. Fixes #14857 Change-Id: I5ab2423fb6c85a061928e3206b02185ea8c79cd7 Reviewed-on: https://go-review.googlesource.com/20826Reviewed-by: Keith Randall <khr@golang.org>
-
Marcel van Lohuizen authored
API not exposed yet. Change-Id: Iaba0adc0fa1ae8075e6b56796f99ee8db9177a78 Reviewed-on: https://go-review.googlesource.com/18896Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
API is not exposed yet. Change-Id: I729360ef2be1d8ea683ca93cdb1763897cc8657c Reviewed-on: https://go-review.googlesource.com/18895Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
testing.go: - run method will evolve into the Run method. - added level field in common benchmark.go: - benchContext will be central to distinguish handling of benchmarks between normal Run methods and ones called from within Benchmark function. - expandCPU will evolve into the processing hook for Run methods called within normal processing. - runBench will evolve into the Run method. Change-Id: I1816f9985d5ba94deb0ad062302ea9aee0bb5338 Reviewed-on: https://go-review.googlesource.com/18894Reviewed-by: Russ Cox <rsc@golang.org>
-
Marcel van Lohuizen authored
The biggest change is that each test is now responsible for managing the starting and stopping of its parallel subtests. The "Main" test could be run as a tRunner as well. This shows that the introduction of subtests is merely a generalization of and consistent with the current semantics. Change-Id: Ibf8388c08f85d4b2c0df69c069326762ed36a72e Reviewed-on: https://go-review.googlesource.com/18893Reviewed-by: Russ Cox <rsc@golang.org>
-
David Symonds authored
There's nothing guaranteeing that the *Regexp isn't in active use, and so copying the sync.Mutex value is invalid. Updates #14839. Change-Id: Iddf52bf69df1b563377922399f64a571f76b95dd Reviewed-on: https://go-review.googlesource.com/20841Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
-
David Chase authored
This seems to help the problem reported in #14606; this change seems to produce about a 4% improvement (mostly for the 128-8192 shards). Fixes #14789. Change-Id: I1bd52c82d4ca81d9d5e9ab371fdfc860d7e8af50 Reviewed-on: https://go-review.googlesource.com/20660 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Christopher Nelson authored
Improve the test by also translating " " to "_". Fixes #14671. Change-Id: Ie5997934b93c7663d7b8432244fad47bb5d3ffbe Reviewed-on: https://go-review.googlesource.com/20714Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Chase authored
This is intended to help debug compiler problems that pop up in the bootstrap phase of make.bash. GO_GCFLAGS does not normally apply there. Options-for-all phases is intended to allow crude tracing (and full timing) by turning on timing for all phases, not just one. Phase names can also be specified using a regular expression, for example BOOT_GO_GCFLAGS=-d='ssa/~^.*scc$/off' \ GO_GCFLAGS='-d=ssa/~^.*scc$/off' ./make.bash I just added this because it was the fastest way to get me to a place where I could easily debug the compiler. Change-Id: I0781f3e7c19651ae7452fa25c2d54c9a245ef62d Reviewed-on: https://go-review.googlesource.com/20775Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 17 Mar, 2016 3 commits
-
-
Todd Neal authored
Change-Id: Ic40449b2e4b4f18cbe5b5d4c3d51ea7b05ac674d Reviewed-on: https://go-review.googlesource.com/20823 Run-TryBot: Todd Neal <todd@tneal.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Mikio Hara authored
This change makes unexposed methods start with lowercase letters for avoiding unnecessary confusion because the net package uses many embedding structures and intrefaces for controlling exposure of APIs. Note that this change leaves DNS-related methods as they are. Change-Id: I253758d1659175c5d0af6b2efcd30ce83f46543d Reviewed-on: https://go-review.googlesource.com/20784 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Hyang-Ah Hana Kim authored
Change-Id: Ic5f62a7d0a5c090da69213d1d0187af0ea48e358 Reviewed-on: https://go-review.googlesource.com/20820Reviewed-by: Rob Pike <r@golang.org>
-