- 23 Oct, 2018 2 commits
-
-
Ian Lance Taylor authored
Fixes build. Change-Id: Id3d78ae9e4669371b4ebf29f69217d0809ffb829 Reviewed-on: https://go-review.googlesource.com/c/143917 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alexandre Maari authored
Fixes #27930 Change-Id: I31ad3fdb74d74152268c59ae4c651cc4c8c1716d Reviewed-on: https://go-review.googlesource.com/c/142217Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 22 Oct, 2018 14 commits
-
-
Ian Lance Taylor authored
This copies the change to goosList in CL 138115 to the private copy in cmd/go. The change introducing the private copy was apparently not made with Gerrit, but can be seen at https://github.com/golang/vgo/commit/08359e782fb601567c57f56beb540841c2416d92. That change says "This is adapted from code in go/build and the rest of cmd/go. At some point, we should deduplicate them." Doing another copy for now, rather than something more complex involving cmd/dist, pending that deduplication. Change-Id: I9b6e1f63a3a68c002b60a9a97aa367c5cc7801c9 Reviewed-on: https://go-review.googlesource.com/c/143759 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Clément Chigot authored
This commit adds AIX operating system to cmd/cgo package for ppc64 architecture. It doesn't fully adapt cgo tool to AIX. But it allows to use go tool cgo -godefs which is really usefull for others packages. Update: #25893 Change-Id: I38e289cf0122d143ba100986d08229b51b03ddfc Reviewed-on: https://go-review.googlesource.com/c/138731 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Rob Pike authored
Now that the library allows much larger data, it can kill machines with less memory. Fixes #28321 Change-Id: I98e1a5fdf812fd75adfb22bf01542423de405fe2 Reviewed-on: https://go-review.googlesource.com/c/143817Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
-
Robert Griesemer authored
The parser accepts ...T types in parameter lists whereever a type is permitted; this matches the syntax and allows for more tolerant parsing and error recovery. go/types on the other hand assumed that the parser would report those errors and assumed any outstanding such errors would be due to otherwise manipulated ASTs leading to invalid ASTs. go/types further assumed that a parameter list (a, b, c ...int) was permitted (a couple of tests used such parameter lists). With this CL, go/types now correctly refuses invalid parameter lists. Fixes #28281. Change-Id: Ib788255f7b7819fdb972c7801bb153a53ce2ddf7 Reviewed-on: https://go-review.googlesource.com/c/143857 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
-
Clément Chigot authored
This commit adds AIX operating system to cmd/go package for ppc64 architecture. Updates: #25893 Change-Id: I2605d10a7833fa2eb197f6db4a52d5919cf93614 Reviewed-on: https://go-review.googlesource.com/c/138732 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Genevieve Luyt authored
The log interface was changed in https://golang.org/cl/2419042. Change-Id: I3eaddd8a5cfcae961db16555fb1b0ce6770b6334 Reviewed-on: https://go-review.googlesource.com/c/143777Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
TBR=khr Change-Id: Ia5a08f1acd9f37c466829754990733330264f546 Reviewed-on: https://go-review.googlesource.com/c/143758Reviewed-by: Robert Griesemer <gri@golang.org>
-
Robert Griesemer authored
The existing code adjusted the receivers of embedded interface methods to match the embedding interface type. That required cloning (shallow copying) the embedded methods and destroyed their object identity in the process. Don't do this anymore. The consequence to clients is that they might see different methods of an interface having different receiver types; they are always the type of the interface that explicitly declared the method (which is what one usually would want, anyway). Fixes #28282. Change-Id: I2e6f1497f46affdf7510547a64601de3787367db Reviewed-on: https://go-review.googlesource.com/c/143757Reviewed-by: Alan Donovan <adonovan@google.com>
-
Alessandro Arzilli authored
Removes statictmp variables from debug_info and the final symbol table. Fixes #27800 Change-Id: I302c59a04bc3f460e7085fef241f937bbf30421d Reviewed-on: https://go-review.googlesource.com/c/142577 Run-TryBot: Alessandro Arzilli <alessandro.arzilli@gmail.com> Run-TryBot: Heschi Kreinick <heschi@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com>
-
Keith Randall authored
The second and subsequent return values from f() need to be converted to the element type of the first return value from f() (which must be a slice). Fixes #22327 Change-Id: I5c0a424812c82c1b95b6d124c5626cfc4408bdb6 Reviewed-on: https://go-review.googlesource.com/c/142718Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
fanzha02 authored
Current assembler saves constants in Offset which type is int64, causing 32-bit constants have a incorrect class. This CL reclassifies constants when opcodes are 32-bit variant, like MOVW, ANDW and ADDW, etc. Besides, this CL encodes some constants of ADDCON class as MOVs instructions. This CL changes the assembler behavior as follows. 1. go assembler ADDW $MOVCON, Rn, Rd previous version: MOVD $MOVCON, Rtmp; ADDW Rtmp, Rn, Rd current version: MOVW $MOVCON, Rtmp; ADDW Rtmp, Rn, Rd 2. go assembly MOVW $0xaaaaffff, R1 previous version: treats $0xaaaaffff as VCON, encodes it as MOVW 0x994, R1 (loads it from pool). current version: treats $0xaaaaffff as MOVCON, and encodes it into MOVW instructions. 3. go assembly MOVD $0x210000, R1 previous version: treats $0x210000 as ADDCON, loads it from pool current version: treats $0x210000 as MOVCON, and encodes it into MOVD instructions. Add the test cases. 1. Binary size before/after. binary size change pkg/linux_arm64 -1.534KB pkg/tool/linux_arm64 -0.718KB go -0.32KB gofmt no change 2. go1 benchmark result. name old time/op new time/op delta BinaryTree17-8 6.26s ± 1% 6.28s ± 1% ~ (p=0.105 n=10+10) Fannkuch11-8 5.40s ± 0% 5.39s ± 0% -0.29% (p=0.028 n=9+10) FmtFprintfEmpty-8 94.5ns ± 0% 95.0ns ± 0% +0.51% (p=0.000 n=10+9) FmtFprintfString-8 163ns ± 1% 159ns ± 1% -2.06% (p=0.000 n=10+9) FmtFprintfInt-8 200ns ± 1% 196ns ± 1% -1.99% (p=0.000 n=9+10) FmtFprintfIntInt-8 292ns ± 3% 284ns ± 1% -2.87% (p=0.001 n=10+9) FmtFprintfPrefixedInt-8 422ns ± 1% 420ns ± 1% -0.59% (p=0.015 n=10+10) FmtFprintfFloat-8 458ns ± 0% 463ns ± 1% +1.19% (p=0.000 n=9+10) FmtManyArgs-8 1.37µs ± 1% 1.35µs ± 1% -1.85% (p=0.000 n=10+10) GobDecode-8 15.5ms ± 1% 15.3ms ± 1% -1.82% (p=0.000 n=10+10) GobEncode-8 11.7ms ± 5% 11.7ms ± 2% ~ (p=0.549 n=10+9) Gzip-8 622ms ± 0% 624ms ± 0% +0.23% (p=0.000 n=10+9) Gunzip-8 73.6ms ± 0% 73.8ms ± 1% ~ (p=0.077 n=9+9) HTTPClientServer-8 115µs ± 1% 115µs ± 1% ~ (p=0.796 n=10+10) JSONEncode-8 31.1ms ± 2% 28.7ms ± 1% -7.98% (p=0.000 n=10+9) JSONDecode-8 145ms ± 0% 145ms ± 1% ~ (p=0.447 n=9+10) Mandelbrot200-8 9.67ms ± 0% 9.60ms ± 0% -0.76% (p=0.000 n=9+9) GoParse-8 7.56ms ± 1% 7.58ms ± 0% +0.21% (p=0.035 n=10+9) RegexpMatchEasy0_32-8 208ns ±10% 222ns ± 0% ~ (p=0.531 n=10+6) RegexpMatchEasy0_1K-8 699ns ± 4% 694ns ± 4% ~ (p=0.868 n=10+10) RegexpMatchEasy1_32-8 186ns ± 8% 190ns ±12% ~ (p=0.955 n=10+10) RegexpMatchEasy1_1K-8 1.13µs ± 1% 1.05µs ± 2% -6.64% (p=0.000 n=10+10) RegexpMatchMedium_32-8 316ns ± 7% 288ns ± 1% -8.68% (p=0.000 n=10+7) RegexpMatchMedium_1K-8 90.2µs ± 0% 85.5µs ± 2% -5.19% (p=0.000 n=10+10) RegexpMatchHard_32-8 5.53µs ± 0% 3.90µs ± 0% -29.52% (p=0.000 n=10+10) RegexpMatchHard_1K-8 119µs ± 0% 124µs ± 0% +4.29% (p=0.000 n=9+10) Revcomp-8 1.07s ± 0% 1.07s ± 0% ~ (p=0.094 n=9+9) Template-8 162ms ± 1% 160ms ± 2% ~ (p=0.089 n=10+10) TimeParse-8 756ns ± 2% 763ns ± 1% ~ (p=0.158 n=10+10) TimeFormat-8 758ns ± 1% 746ns ± 1% -1.52% (p=0.000 n=10+10) name old speed new speed delta GobDecode-8 49.4MB/s ± 1% 50.3MB/s ± 1% +1.84% (p=0.000 n=10+10) GobEncode-8 65.6MB/s ± 5% 65.4MB/s ± 2% ~ (p=0.549 n=10+9) Gzip-8 31.2MB/s ± 0% 31.1MB/s ± 0% -0.24% (p=0.000 n=9+9) Gunzip-8 264MB/s ± 0% 263MB/s ± 1% ~ (p=0.073 n=9+9) JSONEncode-8 62.3MB/s ± 2% 67.7MB/s ± 1% +8.67% (p=0.000 n=10+9) JSONDecode-8 13.4MB/s ± 0% 13.4MB/s ± 1% ~ (p=0.508 n=9+10) GoParse-8 7.66MB/s ± 1% 7.64MB/s ± 0% -0.23% (p=0.049 n=10+9) RegexpMatchEasy0_32-8 154MB/s ± 9% 143MB/s ± 3% ~ (p=0.303 n=10+7) RegexpMatchEasy0_1K-8 1.46GB/s ± 4% 1.47GB/s ± 4% ~ (p=0.912 n=10+10) RegexpMatchEasy1_32-8 172MB/s ± 9% 170MB/s ±12% ~ (p=0.971 n=10+10) RegexpMatchEasy1_1K-8 908MB/s ± 1% 972MB/s ± 2% +7.12% (p=0.000 n=10+10) RegexpMatchMedium_32-8 3.17MB/s ± 7% 3.46MB/s ± 1% +9.14% (p=0.000 n=10+7) RegexpMatchMedium_1K-8 11.3MB/s ± 0% 12.0MB/s ± 2% +5.51% (p=0.000 n=10+10) RegexpMatchHard_32-8 5.78MB/s ± 0% 8.21MB/s ± 0% +41.93% (p=0.000 n=9+10) RegexpMatchHard_1K-8 8.62MB/s ± 0% 8.27MB/s ± 0% -4.11% (p=0.000 n=9+10) Revcomp-8 237MB/s ± 0% 237MB/s ± 0% ~ (p=0.081 n=9+9) Template-8 12.0MB/s ± 1% 12.1MB/s ± 2% ~ (p=0.072 n=10+10) Change-Id: I080801f520366b42d5f9699954bd33106976a81b Reviewed-on: https://go-review.googlesource.com/c/120661 Run-TryBot: Ben Shi <powerman1st@163.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Carlos Eduardo Seo authored
This change implements mulWW as an intrinsic for ppc64x. Performance numbers below: name old time/op new time/op delta QuoRem 4.54µs ±45% 3.22µs ± 0% -29.22% (p=0.029 n=4+4) ModSqrt225_Tonelli 765µs ± 3% 757µs ± 0% -1.02% (p=0.029 n=4+4) ModSqrt225_3Mod4 231µs ± 0% 231µs ± 0% -0.10% (p=0.029 n=4+4) ModSqrt231_Tonelli 789µs ± 0% 788µs ± 0% -0.14% (p=0.029 n=4+4) ModSqrt231_5Mod8 267µs ± 0% 267µs ± 0% -0.13% (p=0.029 n=4+4) Sqrt 49.5µs ±17% 45.3µs ± 0% -8.48% (p=0.029 n=4+4) IntSqr/1 32.2ns ±22% 24.2ns ± 0% -24.79% (p=0.029 n=4+4) IntSqr/2 60.6ns ± 0% 60.9ns ± 0% +0.50% (p=0.029 n=4+4) IntSqr/3 82.8ns ± 0% 83.3ns ± 0% +0.51% (p=0.029 n=4+4) IntSqr/5 122ns ± 0% 121ns ± 0% -1.22% (p=0.029 n=4+4) IntSqr/8 227ns ± 0% 226ns ± 0% -0.44% (p=0.029 n=4+4) IntSqr/10 300ns ± 0% 298ns ± 0% -0.67% (p=0.029 n=4+4) IntSqr/20 1.02µs ± 0% 0.89µs ± 0% -13.08% (p=0.029 n=4+4) IntSqr/30 1.73µs ± 0% 1.51µs ± 0% -12.73% (p=0.029 n=4+4) IntSqr/50 3.69µs ± 1% 3.29µs ± 0% -10.70% (p=0.029 n=4+4) IntSqr/80 7.64µs ± 0% 7.04µs ± 0% -7.91% (p=0.029 n=4+4) IntSqr/100 11.1µs ± 0% 10.3µs ± 0% -7.04% (p=0.029 n=4+4) IntSqr/200 37.9µs ± 0% 36.4µs ± 0% -4.13% (p=0.029 n=4+4) IntSqr/300 69.4µs ± 0% 66.0µs ± 0% -4.94% (p=0.029 n=4+4) IntSqr/500 174µs ± 0% 168µs ± 0% -3.10% (p=0.029 n=4+4) IntSqr/800 347µs ± 0% 333µs ± 0% -4.06% (p=0.029 n=4+4) IntSqr/1000 524µs ± 0% 507µs ± 0% -3.21% (p=0.029 n=4+4) Change-Id: If067452f5b6579ad3a2e9daa76a7ffe6fceae1bb Reviewed-on: https://go-review.googlesource.com/c/143217 Run-TryBot: Giovanni Bajo <rasky@develer.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Giovanni Bajo <rasky@develer.com>
-
Rob Pike authored
A little shift magic makes it easy to adjust the maximum buffer size on machines with larger integers. Fixes #27635 Change-Id: I1f26b07a363fbb9730df2377052475fa88bbb781 Reviewed-on: https://go-review.googlesource.com/c/143678 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Rob Pike authored
A prior attempt at addressing the issue got bogged down in an endless conversation around the subtleties of Read semantics. Let's not go there. Instead, we put the issue to bed, perhaps not in perfect comfort but well enough, by moving a line of the example so that even if there is a "benign" error as the issue suggests, the loop terminates with n and err correctly set. Fixes #27818 Change-Id: I4a32d56c9e782f17578565d90b22ce531e3d8667 Reviewed-on: https://go-review.googlesource.com/c/143677Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 21 Oct, 2018 1 commit
-
-
Tobias Klauser authored
This fixes the build with go1.4 during bootstrap. Change-Id: I35fa1dc3d877d31d5ffe515f5f19188f4a8b77f4 Reviewed-on: https://go-review.googlesource.com/c/143377 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 20 Oct, 2018 2 commits
-
-
Andrew Bonventre authored
As of golang.org/cl/141857 the import path has changed from golang.org/x/tour/gotour to golang.org/x/tour Change-Id: Ib54ab2e50188ef66c8a5c45136babfa49ad6934a Reviewed-on: https://go-review.googlesource.com/c/141917 Run-TryBot: Andrew Bonventre <andybons@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Nick Craig-Wood authored
Before this change running os.Stdout.Sync() in the browser would panic the application with: panic: syscall/js: Value.Call: property fsync is not a function, got undefined Afterwards Sync() becomes a noop for compatibility reasons. Change-Id: I1fcef694beb35fdee3173f87371e1ff233b15d32 Reviewed-on: https://go-review.googlesource.com/c/143138Reviewed-by: Richard Musiol <neelance@gmail.com> Run-TryBot: Richard Musiol <neelance@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 19 Oct, 2018 13 commits
-
-
Robert Griesemer authored
Keeps the longtest builder green for now. Proper fix to come ASAP. Also, reword an internal comment that could easily be misread. Updates #28282. Change-Id: I8f41c9faa5a3eb638e6204bae3ff374ed49e5177 Reviewed-on: https://go-review.googlesource.com/c/143478 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Josh Bleecher Snyder authored
The goal of this change is to move work from walk to SSA, and simplify things along the way. This is hard to accomplish cleanly with small incremental changes, so this large commit message aims to provide a roadmap to the diff. High level description: Prior to this change, walk was responsible for constructing (most of) the stack for function calls. ascompatte gathered variadic arguments into a slice. It also rewrote n.List from a list of arguments to a list of assignments to stack slots. ascompatte was called multiple times to handle the receiver in a method call. reorder1 then introduced temporaries into n.List as needed to avoid smashing the stack. adjustargs then made extra stack space for go/defer args as needed. Node to SSA construction evaluated all the statements in n.List, and issued the function call, assuming that the stack was correctly constructed. Intrinsic calls had to dig around inside n.List to extract the arguments, since intrinsics don't use the stack to make function calls. This change moves stack construction to the SSA construction phase. ascompatte, now called walkParams, does all the work that ascompatte and reorder1 did. It handles variadic arguments, inserts the method receiver if needed, and allocates temporaries. It does not, however, make any assignments to stack slots. Instead, it moves the function arguments to n.Rlist, leaving assignments to temporaries in n.List. (It would be better to use Ninit instead of List; future work.) During SSA construction, after doing all the temporary assignments in n.List, the function arguments are assigned to stack slots by constructing the appropriate SSA Value, using (*state).storeArg. SSA construction also now handles adjustments for go/defer args. This change also simplifies intrinsic calls, since we no longer need to undo walk's work. Along the way, we simplify nodarg by pushing the fp==1 case to its callers, where it fits nicely. Generated code differences: There were a few optimizations applied along the way, the old way. f(g()) was rewritten to do a block copy of function results to function arguments. And reorder1 avoided introducing the final "save the stack" temporary in n.List. The f(g()) block copy optimization never actually triggered; the order pass rewrote away g(), so that has been removed. SSA optimizations mostly obviated the need for reorder1's optimization of avoiding the final temporary. The exception was when the temporary's type was not SSA-able; in that case, we got a Move into an autotmp and then an immediate Move onto the stack, with the autotmp never read or used again. This change introduces a new rewrite rule to detect such pointless double Moves and collapse them into a single Move. This is actually more powerful than the original optimization, since the original optimization relied on the imprecise Node.HasCall calculation. The other significant difference in the generated code is that the stack is now constructed completely in SP-offset order. Prior to this change, the stack was constructed somewhat haphazardly: first the final argument that Node.HasCall deemed to require a temporary, then other arguments, then the method receiver, then the defer/go args. SP-offset is probably a good default order. See future work. There are a few minor object file size changes as a result of this change. I investigated some regressions in early versions of this change. One regression (in archive/tar) was the addition of a single CMPQ instruction, which would be eliminated were this TODO from flagalloc to be done: // TODO: Remove original instructions if they are never used. One regression (in text/template) was an ADDQconstmodify that is now a regular MOVQLoad+ADDQconst+MOVQStore, due to an unlucky change in the order in which arguments are written. The argument change order can also now be luckier, so this appears to be a wash. All in all, though there will be minor winners and losers, this change appears to be performance neutral. Future work: Move loading the result of function calls to SSA construction; eliminate OINDREGSP. Consider pushing stack construction deeper into SSA world, perhaps in an arch-specific pass. Among other benefits, this would make it easier to transition to a new calling convention. This would require rethinking the handling of stack conflicts and is non-trivial. Figure out some clean way to indicate that stack construction Stores/Moves do not alias each other, so that subsequent passes may do things like CSE+tighten shared stack setup, do DSE using non-first Stores, etc. This would allow us to eliminate the minor text/template regression. Possibly make assignments to stack slots not treated as statements by DWARF. Compiler benchmarks: name old time/op new time/op delta Template 182ms ± 2% 179ms ± 2% -1.69% (p=0.000 n=47+48) Unicode 86.3ms ± 5% 85.1ms ± 4% -1.36% (p=0.001 n=50+50) GoTypes 646ms ± 1% 642ms ± 1% -0.63% (p=0.000 n=49+48) Compiler 2.89s ± 1% 2.86s ± 2% -1.36% (p=0.000 n=48+50) SSA 8.47s ± 1% 8.37s ± 2% -1.22% (p=0.000 n=47+50) Flate 122ms ± 2% 121ms ± 2% -0.66% (p=0.000 n=47+45) GoParser 147ms ± 2% 146ms ± 2% -0.53% (p=0.006 n=46+49) Reflect 406ms ± 2% 403ms ± 2% -0.76% (p=0.000 n=48+43) Tar 162ms ± 3% 162ms ± 4% ~ (p=0.191 n=46+50) XML 223ms ± 2% 222ms ± 2% -0.37% (p=0.031 n=45+49) [Geo mean] 382ms 378ms -0.89% name old user-time/op new user-time/op delta Template 219ms ± 3% 216ms ± 3% -1.56% (p=0.000 n=50+48) Unicode 109ms ± 6% 109ms ± 5% ~ (p=0.190 n=50+49) GoTypes 836ms ± 2% 828ms ± 2% -0.96% (p=0.000 n=49+48) Compiler 3.87s ± 2% 3.80s ± 1% -1.81% (p=0.000 n=49+46) SSA 12.0s ± 1% 11.8s ± 1% -2.01% (p=0.000 n=48+50) Flate 142ms ± 3% 141ms ± 3% -0.85% (p=0.003 n=50+48) GoParser 178ms ± 4% 175ms ± 4% -1.66% (p=0.000 n=48+46) Reflect 520ms ± 2% 512ms ± 2% -1.44% (p=0.000 n=45+48) Tar 200ms ± 3% 198ms ± 4% -0.61% (p=0.037 n=47+50) XML 277ms ± 3% 275ms ± 3% -0.85% (p=0.000 n=49+48) [Geo mean] 482ms 476ms -1.23% name old alloc/op new alloc/op delta Template 36.1MB ± 0% 35.3MB ± 0% -2.18% (p=0.008 n=5+5) Unicode 29.8MB ± 0% 29.3MB ± 0% -1.58% (p=0.008 n=5+5) GoTypes 125MB ± 0% 123MB ± 0% -2.13% (p=0.008 n=5+5) Compiler 531MB ± 0% 513MB ± 0% -3.40% (p=0.008 n=5+5) SSA 2.00GB ± 0% 1.93GB ± 0% -3.34% (p=0.008 n=5+5) Flate 24.5MB ± 0% 24.3MB ± 0% -1.18% (p=0.008 n=5+5) GoParser 29.4MB ± 0% 28.7MB ± 0% -2.34% (p=0.008 n=5+5) Reflect 87.1MB ± 0% 86.0MB ± 0% -1.33% (p=0.008 n=5+5) Tar 35.3MB ± 0% 34.8MB ± 0% -1.44% (p=0.008 n=5+5) XML 47.9MB ± 0% 47.1MB ± 0% -1.86% (p=0.008 n=5+5) [Geo mean] 82.8MB 81.1MB -2.08% name old allocs/op new allocs/op delta Template 352k ± 0% 347k ± 0% -1.32% (p=0.008 n=5+5) Unicode 342k ± 0% 339k ± 0% -0.66% (p=0.008 n=5+5) GoTypes 1.29M ± 0% 1.27M ± 0% -1.30% (p=0.008 n=5+5) Compiler 4.98M ± 0% 4.87M ± 0% -2.14% (p=0.008 n=5+5) SSA 15.7M ± 0% 15.2M ± 0% -2.86% (p=0.008 n=5+5) Flate 233k ± 0% 231k ± 0% -0.83% (p=0.008 n=5+5) GoParser 296k ± 0% 291k ± 0% -1.54% (p=0.016 n=5+4) Reflect 1.05M ± 0% 1.04M ± 0% -0.65% (p=0.008 n=5+5) Tar 343k ± 0% 339k ± 0% -0.97% (p=0.008 n=5+5) XML 432k ± 0% 426k ± 0% -1.19% (p=0.008 n=5+5) [Geo mean] 815k 804k -1.35% name old object-bytes new object-bytes delta Template 505kB ± 0% 505kB ± 0% -0.01% (p=0.008 n=5+5) Unicode 224kB ± 0% 224kB ± 0% ~ (all equal) GoTypes 1.82MB ± 0% 1.83MB ± 0% +0.06% (p=0.008 n=5+5) Flate 324kB ± 0% 324kB ± 0% +0.00% (p=0.008 n=5+5) GoParser 402kB ± 0% 402kB ± 0% +0.04% (p=0.008 n=5+5) Reflect 1.39MB ± 0% 1.39MB ± 0% -0.01% (p=0.008 n=5+5) Tar 449kB ± 0% 449kB ± 0% -0.02% (p=0.008 n=5+5) XML 598kB ± 0% 597kB ± 0% -0.05% (p=0.008 n=5+5) Change-Id: Ifc9d5c1bd01f90171414b8fb18ffe2290d271143 Reviewed-on: https://go-review.googlesource.com/c/114797 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Denys Smirnov authored
Currently, WASM binary writer requests 16 int registers (locals) and 16 float registers for every function regardless of how many locals the function uses. This change counts the number of used registers and requests a number of locals matching the highest register index. The change has no effect on performance and neglectable binary size improvement, but it makes WASM code more readable and easy to analyze. Change-Id: Ic1079623c0d632b215c68482db909fa440892700 GitHub-Last-Rev: 184634fa918aff74e280904dc2efafcc80735a8b GitHub-Pull-Request: golang/go#28116 Reviewed-on: https://go-review.googlesource.com/c/140999Reviewed-by: Richard Musiol <neelance@gmail.com> Run-TryBot: Richard Musiol <neelance@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Robert Griesemer authored
Per the spec clarification https://golang.org/cl/142757 (issue #27995). Fixes #28251. Updates #27995. Change-Id: Idc142829955f9306a8698c5ed1c24baa8ee2b109 Reviewed-on: https://go-review.googlesource.com/c/143179Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Because the code type-checks T rather than ...T (and then corrects the type to []T "manually"), it didn't automatically record the type for the ast.Expr corresponding to ...T. Do it manually. Fixes #28277. Change-Id: I3d9aae310c90b01f52d189e70c48dd9007f72207 Reviewed-on: https://go-review.googlesource.com/c/143317Reviewed-by: Alan Donovan <adonovan@google.com>
-
Matthew Dempsky authored
It's no longer needed after removing safemode. Change-Id: I7581d77a86342e3b6d7c632839f5eb7a5c20902e Reviewed-on: https://go-review.googlesource.com/c/143397 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
The existing code assumed that comparability and orderedness was implied for the 2nd operand if the 1st operand satisfied these predicates. Fixes #28164. Change-Id: I61d4e5eedb3297731a20a14acb3645d11b36fcc5 Reviewed-on: https://go-review.googlesource.com/c/143277 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Clément Chigot authored
This commit adds the change on asm_ppc64.s and tls_ppc64.s files for AIX operating system. R2 does not need to be set for aix/ppc64 since it should remain valid througout Go execution, except after a call to a C function. Moreover, g must always be saved on the tls as syscalls are made with C functions. Some modifications on asm_ppc64.s are due to AIX stack layout. It also removes a useless part in asmcgocall which was done twice. Change-Id: Ie037ab73da00562bb978f2d0f17fcdabd4a40aa2 Reviewed-on: https://go-review.googlesource.com/c/138735 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Clément Chigot authored
This commit adds a new package in cmd/internal which aims to debug and load XCOFF files. Updates: #25893, #28037 Change-Id: I47db495bedfa43e9129a831b9b8bbc35b703567b Reviewed-on: https://go-review.googlesource.com/c/138727 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Filippo Valsorda authored
crypto/tls is meant to work over network connections with buffering, not synchronous connections, as explained in #24198. Tests based on net.Pipe are unrealistic as reads and writes are matched one to one. Such tests worked just thanks to the implementation details of the tls.Conn internal buffering, and would break if for example the flush of the first flight of the server was not entirely assimilated by the client rawInput buffer before the client attempted to reply to the ServerHello. Note that this might run into the Darwin network issues at #25696. Fixed a few test races that were either hidden or synchronized by the use of the in-memory net.Pipe. Also, this gets us slightly more realistic benchmarks, reflecting some syscall cost of Read and Write operations. Change-Id: I5a597b3d7a81b8ccc776030cc837133412bf50f8 Reviewed-on: https://go-review.googlesource.com/c/142817 Run-TryBot: Filippo Valsorda <filippo@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Seebs authored
Recent change golang.org/cl/142737 drops the only call site for the sortKeys function. If it's not in use, it should probably not be there in the code, lurking and preparing to bite us when someone calls that instead of the new key sorter in fmtsort, resulting in strange inconsistencies. Since the function isn't called, this should have no impact. Related to, but does not fix, #21095. Change-Id: I4695503ef4d5ce90d989ec952f01ea00cc15c79d Reviewed-on: https://go-review.googlesource.com/c/143178Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Rob Pike authored
Return a consistently formatted error string that reports either a parse error or a range error. Before: invalid boolean value "3" for -debug: strconv.ParseBool: parsing "3": invalid syntax After: invalid boolean value "3" for -debug: parse error Fixes #26822 Change-Id: I60992bf23da32a4c0cf32472a8af486a3c9674ad Reviewed-on: https://go-review.googlesource.com/c/143257Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ben Shi authored
This CL add 3 rules to combine byte-store to word-store on386 and amd64. Change-Id: Iffd9cda42f1961680c81def4edc773ad58f211b3 Reviewed-on: https://go-review.googlesource.com/c/143057 Run-TryBot: Ben Shi <powerman1st@163.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
- 18 Oct, 2018 8 commits
-
-
Matthew Dempsky authored
For symmetry with go/types.Identical. Passes toolstash-check. Change-Id: Id19c3956e44ed8e2d9f203d15824322cc5842d3d Reviewed-on: https://go-review.googlesource.com/c/143180 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Rob Pike authored
For easier testing, change the way maps are printed so they appear in a consistent order between runs. Do this by printing them in key-sorted order. To do this, we add a package at the root, internal/fmtsort, that implements a general mechanism for sorting map keys regardless of their type. This is a little messy and probably slow, but formatted printing of maps has never been fast and is already always reflection-driven. The rules are: The ordering rules are more general than with Go's < operator: - when applicable, nil compares low - ints, floats, and strings order by < - NaN compares less than non-NaN floats - bool compares false before true - complex compares real, then imag - pointers compare by machine address - channel values compare by machine address - structs compare each field in turn - arrays compare each element in turn. - interface values compare first by reflect.Type describing the concrete type and then by concrete value as described in the previous rules. The new package is internal because we really do not want everyone using this to sort things. It is slow, not general, and only suitable for the subset of types that can be map keys. Also use the package in text/template, which already had a weaker version of this mechanism. This change requires adding a dependency on sort to the fmt package, but that isn't disruptive to the dependency tree. Fixes #21095 Change-Id: Ia602115c7de5d95993dbd609611d8bd96e054157 Reviewed-on: https://go-review.googlesource.com/c/142737Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Keith Randall authored
The fix in CL 141649 is not right, the line in question got moved, not added. Not sure why the -u option didn't do the right thing when preparing the diff. Fixes #28198 Change-Id: I6d45fdbbd5a9487cc70da07ab84e090b689a57f5 Reviewed-on: https://go-review.googlesource.com/c/142298Reviewed-by: Alberto Donizetti <alb.donizetti@gmail.com>
-
Robert Griesemer authored
Follow-up on https://golang.org/cl/143037. Change-Id: Ia36760b499f7d46ce03e0fa81ec455a4a20208ac Reviewed-on: https://go-review.googlesource.com/c/143061 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
David Chase authored
This change attaches a slots to the OpArg values for incoming params, and this in turn causes location lists to be generated for params, and that yields better debugging, in delve and sometimes in gdb. The parameter lifetimes could start earlier; they are in fact defined on entry, not at the point where the OpArg is finally mentioned. (that will be addressed in another CL) Change-Id: Icca891e118291d260c35a14acd5bc92bb82d9e9f Reviewed-on: https://go-review.googlesource.com/c/141697 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Ian Lance Taylor authored
As of https://golang.org/cl/43456 gccgo now gives a better error message for this test. Before: fixedbugs/issue5089.go:13:1: error: redefinition of ‘bufio.Buffered’: receiver name changed func (b *bufio.Reader) Buffered() int { // ERROR "non-local|redefinition" ^ fixedbugs/issue5089.go:11:13: note: previous definition of ‘bufio.Buffered’ was here import "bufio" // GCCGO_ERROR "previous" ^ Now: fixedbugs/issue5089.go:13:7: error: may not define methods on non-local type func (b *bufio.Reader) Buffered() int { // ERROR "non-local|redefinition" ^ Change-Id: I4112ca8d91336f6369f780c1d45b8915b5e8e235 Reviewed-on: https://go-review.googlesource.com/c/130955 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Richard Musiol authored
This commit changes the encoding of js.Value so that the zero js.Value represents the JavaScript value "undefined". This is what users intuitively expect. Specifically, the encodings of "undefined" and the number zero have been swapped. Fixes #27592. Change-Id: Icfc832c8cdf7a8a78bd69d20e00a04dbed0ccd10 Reviewed-on: https://go-review.googlesource.com/c/143137 Run-TryBot: Richard Musiol <neelance@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Building with gccgo failed with an undefined symbol error from an unnecessary hash function. Updates #19773 Change-Id: Ic78bf1b086ff5ee26d464089c0e14987d3fe8b02 Reviewed-on: https://go-review.googlesource.com/c/130956 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-