- 16 Sep, 2016 16 commits
-
-
David Crawshaw authored
Includes a linux implementation. Change-Id: Iacc2ed7da760ae9deebc928adf2b334b043b07ec Reviewed-on: https://go-review.googlesource.com/27823 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Chase authored
Bias {Eq,Neq}{8,16} to prefer the extension likely to match their operand's load (if loaded), and elide sign and zero extending MOV{B,W}, MOV{B,W}Z when their operands are already appropriately extended. Change-Id: Ic01b9cab55e170f68fc2369688b50ce78a818608 Reviewed-on: https://go-review.googlesource.com/29236 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Cherry Zhang authored
A tentative fix of #16380. It adds "line" everywhere... This also reduces binary size slightly (cmd/go on ARM as an example): before after total binary size 8068097 8018945 (-0.6%) .gopclntab 1195341 1179929 (-1.3%) .debug_line 689692 652017 (-5.5%) Change-Id: Ibda657c6999783c5bac180cbbba487006dbf0ed7 Reviewed-on: https://go-review.googlesource.com/25082Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Cherry Zhang authored
Old backends did not implement them, but SSA do. Change-Id: I543b2281dcf4bab0da37c9b1f26a5ef55a0ea11b Reviewed-on: https://go-review.googlesource.com/29278 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
David Crawshaw authored
For -buildmode=plugin, this lets the linker drop the main.main symbol out of the binary while including most of the runtime. (In the future it should be possible to drop the entire runtime package from plugins.) Change-Id: I3e7a024ddf5cc945e3d8b84bf37a0b7cb2a00eb6 Reviewed-on: https://go-review.googlesource.com/27821 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Crawshaw authored
This CL contains several linker changes to support creating plugins. It collects the exported plugin symbols provided by the compiler and includes them in the moduledata. It treats a binary as being dynamically linked if it imports the plugin package. This lets the dynamic linker de-duplicate symbols. Change-Id: I099b6f38dda26306eba5c41dbe7862f5a5918d95 Reviewed-on: https://go-review.googlesource.com/27820 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Suyash authored
This adds examples showing the different ways of using sort.Search. Change-Id: Iaa08b4501691f37908317fdcf2e618fbe9f99ade Reviewed-on: https://go-review.googlesource.com/29131Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Gins, and in turn Naddr, is only used with ONAME and OLITERAL Nodes, so we can drastically simplify Naddr. Passes toolstash/buildall. Change-Id: I2deb7eb771fd55e7c7f00040a9aee54588fcac11 Reviewed-on: https://go-review.googlesource.com/29247 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Emmanuel Odeke authored
Updates #16360. Adds examples for: + CombinedOutput + StdinPipe + StderrPipe Change-Id: I19293e64b34ed9268da00e0519173a73bfbc2c10 Reviewed-on: https://go-review.googlesource.com/29150 Run-TryBot: Andrew Gerrand <adg@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Matthew Dempsky authored
Since the legacy backends were removed, these fields are write-only. Change-Id: I4816c39267b7c10a4da2a6d22cd367dc475e564d Reviewed-on: https://go-review.googlesource.com/29246 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Dave Cheney authored
Follow up to CL 29134. Generated with gofmt -r 'Nod -> nod', plus three manual adjustments to the comments in syntax/parser.go Change-Id: I02920f7ab10c70b6e850457b42d5fe35f1f3821a Reviewed-on: https://go-review.googlesource.com/29136Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Cherry Zhang authored
According to golang.org/s/go12symtab, for N files, it should put N+1 there. Fixes #17132. Change-Id: I0c84136855c6436be72b9d3c407bf10d4c81a099 Reviewed-on: https://go-review.googlesource.com/29275 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Matthew Dempsky authored
Change-Id: I5c2fd0ff1b49f3826f2b9869b0b11329804b0e2a Reviewed-on: https://go-review.googlesource.com/29244 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Matthew Dempsky authored
Only added lines are moving amd64 and x86's ginsnop functions from gsubr.go to ggen.go to match other architectures, so all of the gsubr.go files can go away. Change-Id: Ib2292460c155ae6d9dcf5c9801f178031d8eea7a Reviewed-on: https://go-review.googlesource.com/29240 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Matthew Dempsky authored
Change-Id: I0131b0d7421ff1397f16a08eff758250abbdf8e2 Reviewed-on: https://go-review.googlesource.com/29239Reviewed-by: Dave Cheney <dave@cheney.net>
-
Vitor De Mario authored
Effective Go has references to a function call f(c, req) made by ServeHTTP mixed with f(w, req). c is dropped in favor of w to maintain consistency Fixes #17128 Change-Id: I6746fd115ed5a58971fd24e54024d29d18ead1fa Reviewed-on: https://go-review.googlesource.com/29311Reviewed-by: Rob Pike <r@golang.org>
-
- 15 Sep, 2016 24 commits
-
-
Alberto Bertogli authored
ReadMsgUnix and WriteMsgUnix both will read/write 1 byte from/to the socket if they were given no buffer to read/write, to avoid a common pitfall in out of band operations (they will usually block indefinitely if there's no actual data to read). This patch adds a note about this behaviour in their documentation, so users can be aware of it. Change-Id: I751f0e12bb4d80311e94ea8de023595c5d40ec3e Reviewed-on: https://go-review.googlesource.com/29180 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
David Chase authored
Binary search remains our friend. Suppose you add an ought-to-be-benign pattern to PPC64.rules, and make.bash starts crashing. You can guard the pattern(s) with config.DebugTest: (Eq8 x y) && config.DebugTest && isSigned(x.Type) && isSigned(y.Type) -> (Equal (CMPW (SignExt8to32 x) (SignExt8to32 y))) and then gossahash -s ./make.bash ... (go drink beer while silicon minions toil) ... Trying ./make.bash args=[], env=[GOSSAHASH=100110010111110] ./make.bash failed (1 distinct triggers): exit status 1 Trigger string is 'GOSSAHASH triggered (*importReader).readByte', repeated 1 times Review GSHS_LAST_FAIL.0.log for failing run Finished with GOSSAHASH=100110010111110 Change-Id: I4eff46ebaf496baa2acedd32e217005cb3ac1c62 Reviewed-on: https://go-review.googlesource.com/29273 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Keith Randall authored
Everything is SSA now. Update #16357 Change-Id: I436dbe367b863ee81a3695a7d653ba4bfc5b0f6c Reviewed-on: https://go-review.googlesource.com/29232Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Keith Randall authored
Delete legacy backend tests, make SSA tests unconditional. Next CL will remove _ssa from the file names. Update #16357 Change-Id: I2a7f5dcbc69455f63b5e6e6b2725df26ab86c8dd Reviewed-on: https://go-review.googlesource.com/29231 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Sam Whited authored
Fixes #17040 Change-Id: I3682cc0367b919084c280d7dc64746495c1d4aaa Reviewed-on: https://go-review.googlesource.com/28872Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Mohit Agarwal authored
Also remove the hard-coded path for getting glibc information. As an example, the following is the diff for `go bug` on Ubuntu before and after the change: >>> --- /tmp/01 2016-09-13 15:08:53.202758043 +0530 +++ /tmp/02 2016-09-13 21:38:17.485039867 +0530 @@ -1,7 +1,7 @@ Please check whether the issue also reproduces on the latest release, go1.7.1. ``` -go version devel +bdb3b790 Wed Sep 7 03:23:44 2016 +0000 linux/amd64 +go version devel +cb13150 Wed Sep 7 09:46:58 2016 +0530 linux/amd64 GOARCH="amd64" GOBIN="" GOEXE="" @@ -18,5 +18,23 @@ CXX="g++" CGO_ENABLED="1" uname -sr: Linux 4.4.0-36-generic +Distributor ID: Ubuntu +Description: Ubuntu 16.04.1 LTS +Release: 16.04 +Codename: xenial +/lib/x86_64-linux-gnu/libc.so.6: GNU C Library (Ubuntu GLIBC 2.23-0ubuntu3) stable release version 2.23, by Roland McGrath et al. gdb --version: GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1 ``` <<< Change-Id: I7e3730a797af0f94d6e43fe4743ab48bc0f11f1b Reviewed-on: https://go-review.googlesource.com/28581 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David Chase authored
GOSSAFUNC=foo had previously only done printing for the single function foo, and didn't quite clean up after itself properly. Changes ensures that Config.HTML != nil iff GOSSAFUNC==name-of-current-function. Change-Id: I255e2902dfc64f715d93225f0d29d9525c06f764 Reviewed-on: https://go-review.googlesource.com/29250 Run-TryBot: David Chase <drchase@google.com> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Josh Bleecher Snyder authored
The only remaining consumers of gins were ginsnop and arch-independent opcodes like GVARDEF. Rewrite ginsnop to create and populate progs directly. Move arch-independent opcodes to package gc and simplify. Delete some now unused code. There is more. Step one towards eliminating gc.Node.Reg. Change-Id: I7c34cd8a848f6fc3b030705ab8e293838e0b6c20 Reviewed-on: https://go-review.googlesource.com/29220 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Fixes the build. Change-Id: Ib9aca6cf86d595d20f22dbf730afa8dea4b44672 Reviewed-on: https://go-review.googlesource.com/29221Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-
Josh Bleecher Snyder authored
Unroll s == "ab" to len(s) == 2 && s[0] == 'a' && s[1] == 'b' This generates faster and shorter code by avoiding a runtime call. Do something similar for !=. The cutoff length is 6. This was chosen empirically by examining binary sizes on arm, arm64, 386, and amd64 using the SSA backend. For all architectures examined, 4, 5, and 6 were the ideal cutoff, with identical binary sizes. The distribution of constant string equality sizes during 'go build -a std' is: 40.81% 622 len 0 14.11% 215 len 4 9.45% 144 len 1 7.81% 119 len 3 7.48% 114 len 5 5.12% 78 len 7 4.13% 63 len 2 3.54% 54 len 8 2.69% 41 len 6 1.18% 18 len 10 0.85% 13 len 9 0.66% 10 len 14 0.59% 9 len 17 0.46% 7 len 11 0.26% 4 len 12 0.20% 3 len 19 0.13% 2 len 13 0.13% 2 len 15 0.13% 2 len 16 0.07% 1 len 20 0.07% 1 len 23 0.07% 1 len 33 0.07% 1 len 36 A cutoff of length 6 covers most of the cases. Benchmarks on amd64 comparing a string to a constant of length 3: Cmp/1same-8 4.78ns ± 6% 0.94ns ± 9% -80.26% (p=0.000 n=20+20) Cmp/1diffbytes-8 6.43ns ± 6% 0.96ns ±11% -85.13% (p=0.000 n=20+20) Cmp/3same-8 4.71ns ± 5% 1.28ns ± 5% -72.90% (p=0.000 n=20+20) Cmp/3difffirstbyte-8 6.33ns ± 7% 1.27ns ± 7% -79.90% (p=0.000 n=20+20) Cmp/3difflastbyte-8 6.34ns ± 8% 1.26ns ± 9% -80.13% (p=0.000 n=20+20) The change to the prove test preserves the existing intent of the test. When the string was short, there was a new "proved in bounds" report that referred to individual byte comparisons. Change-Id: I593ac303b0d11f275672090c5c786ea0c6b8da13 Reviewed-on: https://go-review.googlesource.com/26758 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Dave Cheney authored
Change-Id: I14a7c08105e6bdcee04a5cc21d7932e9ca753384 Reviewed-on: https://go-review.googlesource.com/29138 Run-TryBot: Dave Cheney <dave@cheney.net> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Dave Cheney authored
Fix conflict between CL 29213 and 29134. Change-Id: Ie58bd7195893d7e634f1b257ee0bdd3250cd23c2 Reviewed-on: https://go-review.googlesource.com/29137 TryBot-Result: Gobot Gobot <gobot@golang.org> Run-TryBot: Dave Cheney <dave@cheney.net> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-
Josh Bleecher Snyder authored
staticassign unwraps all CONVNOPs. However, in the included test, we need the CONVNOP for everything to typecheck. Stop unwrapping unnecessarily. The code we generate for this example is suboptimal, but that's not new; see #17113. Fixes #17111. Change-Id: I29532787a074a6fe19a5cc53271eb9c84bf1b576 Reviewed-on: https://go-review.googlesource.com/29213 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Dave Cheney authored
After the removal of the old backend many types are no longer referenced outside internal/gc. Make these functions private so that tools like honnef.co/go/unused can spot when they become dead code. In doing so this CL identified several previously public helpers which are no longer used, so removes them. This should be the last of the public functions. Change-Id: I7e9c4e72f86f391b428b9dddb6f0d516529706c3 Reviewed-on: https://go-review.googlesource.com/29134 Run-TryBot: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Instead of dumping information for the use to copy/paste into the issue tracker, open the issue tracker directly with a pre-filled template. Change-Id: I370d0063b609200497014ccda35244fa4314a662 Reviewed-on: https://go-review.googlesource.com/29210 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Robert Griesemer <gri@golang.org> Reviewed-by: Minux Ma <minux@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Change-Id: If8d27cf1cd8d650ed0ba332448d3174d80b6b0ca Reviewed-on: https://go-review.googlesource.com/29217 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Change-Id: Ifa7a882b020f7b0c9602c28c3e5567e5d4c39e73 Reviewed-on: https://go-review.googlesource.com/29216 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
Matthew Dempsky authored
Consistently use int16 for [ft]reg and int64 for [ft]offset. Change-Id: I7d279bb6e4fb735105429234a949074bf1cefb29 Reviewed-on: https://go-review.googlesource.com/29215 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
-
Matthew Dempsky authored
Change-Id: Ib05a8e149db8accdb1474703cd7b7004243d91d4 Reviewed-on: https://go-review.googlesource.com/29214 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Matthew Dempsky authored
These are no longer reachable as gins dispatches to ginscon for all arch-specific instructions anyway. Change-Id: I7f34883c16058308d8afa0f960dcf554af31bfe4 Reviewed-on: https://go-review.googlesource.com/29211Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Dave Cheney authored
After the removal of the old backend many types are no longer referenced outside internal/gc. Make these functions private so that tools like honnef.co/go/unused can spot when they become dead code. In doing so this CL identified several previously public helpers which are no longer used, so removes them. Change-Id: Idc2d485f493206de9d661bd3cb0ecb4684177b32 Reviewed-on: https://go-review.googlesource.com/29133 Run-TryBot: Dave Cheney <dave@cheney.net> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Dave Cheney authored
Remove unused functions spotted by honnef.co/go/unused. Change-Id: Iabf3b201215ce21e420a60f4ef2679b36231eda7 Reviewed-on: https://go-review.googlesource.com/29132 Run-TryBot: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
It's not everything, but it is a good start. I tried to make the CL delete only. goimports forced a few exceptions to that rule. Update #16357 Change-Id: I041925cb2fe68bb7ae1617af862b22c48da649c1 Reviewed-on: https://go-review.googlesource.com/29168 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Martin Möhrmann <martisch@uos.de>
-
Keith Randall authored
Get rid of BlockCheck. Josh goaded me into it, and I went down a rabbithole making it happen. NilCheck now panics if the pointer is nil and returns void, as before. BlockCheck is gone, and NilCheck is no longer a Control value for any block. It just exists (and deadcode knows not to throw it away). I rewrote the nilcheckelim pass to handle this case. In particular, there can now be multiple NilCheck ops per block. I moved all of the arch-dependent nil check elimination done as part of ssaGenValue into its own proper pass, so we don't have to duplicate that code for every architecture. Making the arch-dependent nil check its own pass means I needed to add a bunch of flags to the opcode table so I could write the code without arch-dependent ops everywhere. Change-Id: I419f891ac9b0de313033ff09115c374163416a9f Reviewed-on: https://go-review.googlesource.com/29120 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-