- 11 Oct, 2016 1 commit
-
-
John Dethridge authored
The (pc, line) deltas in the line number information are currently encoded either with a special opcode, or with a triplet of DW_LNS_advance_pc, DW_LNS_advance_line, and DW_LNS_copy instructions. Instead of DW_LNS_copy, this change always uses a special opcode, which can make DW_LNS_advance_pc or DW_LNS_advance_line unnecessary, or make their operands take fewer bytes. It chooses the special opcode so that the encoding of the remaining deltas is as small as possible. Use DW_LNS_const_add_pc or DW_LNS_fixed_advance_pc instead of DW_LNS_advance_pc for deltas where they save a byte. Update LINE_BASE and LINE_RANGE constants to optimal values for this strategy. This reduces line number information by about 35% and total size by about 2% for a typical binary. Change-Id: Ia61d6bf19c95c1d34ba63c67ed32b376beda225f Reviewed-on: https://go-review.googlesource.com/30577Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 10 Oct, 2016 5 commits
-
-
Russ Cox authored
- Add new BenchmarkQuoRem. - Eliminate allocation in divLarge nat pool - Unroll mulAddVWW body 4x - Remove some redundant slice loads in divLarge name old time/op new time/op delta QuoRem-8 2.18µs ± 1% 1.93µs ± 1% -11.38% (p=0.000 n=19+18) The starting point in the comparison here is Cherry's pending CL to turn mulWW and divWW into intrinsics. The optimizations in divLarge work best because all the function calls are gone. The effect of this CL is not as large if you don't assume Cherry's CL. Change-Id: Ia6138907489c5b9168497912e43705634e163b35 Reviewed-on: https://go-review.googlesource.com/30613 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Cherry Zhang authored
This, along with CL 30140, removes ~50% of stack write barriers mentioned in issue #17330. The remaining are most due to Phi and FwdRef, which is not resolved when building SSA. We might be able to do it at a later stage where Phi and Copy propagations are done, but matching an if-(store-store-call)+ sequence seems not very pleasant. Updates #17330. Change-Id: Iaa36c7b1f4c4fc3dc10a27018a3b0e261094cb21 Reviewed-on: https://go-review.googlesource.com/30290 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
David Chase authored
Inputs to store[BHW] and cmpW(U) need not be correct in more bits than are used by the instruction. Added a pattern tailored to what appears to be cgo boilerplate. Added a pattern (also seen in cgo boilerplate and hashing) to replace {EQ,NE}-CMP-ANDconst with {EQ-NE}-ANDCCconst. Added a pattern to clean up ANDconst shift distance inputs (this was seen in hashing). Simplify repeated and,or,xor. Fixes #17109. Change-Id: I68eac83e3e614d69ffe473a08953048c8b066d88 Reviewed-on: https://go-review.googlesource.com/30455 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Tal Shprecher authored
This is a followup to issue #13805. That change avoid leaks for types that don't have any pointers for the single assignment form of a dottype expression. This does the same for the double assignment form. Fixes #15796 Change-Id: I27474cade0ff1f3025cb6392f47b87b33542bc0f Reviewed-on: https://go-review.googlesource.com/24906 Run-TryBot: Michael Matloob <matloob@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Emmanuel Odeke authored
Change-Id: I5b04ba7e12eff933fc67eb7a1cbdfde536e4db88 Reviewed-on: https://go-review.googlesource.com/30722Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 09 Oct, 2016 7 commits
-
-
Anmol Sethi authored
Change-Id: I0b7052103174f0864ee9714f76f8f78f2a988777 Reviewed-on: https://go-review.googlesource.com/30719Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Quentin Renard authored
Renamed TestPOSTQuery to TestParseFormQuery and added testing for the ";" delimiter, an empty key, an empty value and an empty key + value. Also added TestParseFormQueryMethods to make sure forms sent in PATCH and PUT (and no others) request are parsed correctly in ParseForm. Fixes #17368 Change-Id: I445aad324ffc7b38d179ea41953bffbac0cddffe Reviewed-on: https://go-review.googlesource.com/30555Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Michael Munday authored
This CL removes support for MOVD instructions that store the address of a global variable. For example: MOVD $main·a(SB), (R1) MOVD $main·b(SB), main·c(SB) These instructions are emulated and the new backend doesn't need them (the stores now always go through an intermediate register). Change-Id: I3a1bcb3f19c5096ad0426afd76d35a4d7975733b Reviewed-on: https://go-review.googlesource.com/30720 Run-TryBot: Michael Munday <munday@ca.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Emmanuel Odeke authored
Fixes #14955. Change-Id: I157432584bb51088bec565f6bb9e64348345cff9 Reviewed-on: https://go-review.googlesource.com/23571 Run-TryBot: Adam Langley <agl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Adam Langley <agl@golang.org>
-
Wedson Almeida Filho authored
With this change, the code in bug #15609 compiles and runs properly: 0000000000401070 <main.jump>: 401070: ff 15 aa 7e 06 00 callq *0x67eaa(%rip) # 468f20 <main.pointer> 401076: c3 retq 0000000000468f20 g O .rodata 0000000000000008 main.pointer Fixes #15609 Change-Id: Iebb4d5a9f9fff335b693f4efcc97882fe04eefd7 Reviewed-on: https://go-review.googlesource.com/22950 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Brad Fitzpatrick authored
With help of a new interactive commit classifier tool (tool location TBD, likely x/build/cmd/writenotes), classify all commits from go1.7 up to 56d35d42. We can selectively cull this list later. When in doubt, I erred on the side of inclusion for now. Change-Id: I458945004e1b1a148fb2f294b454a390ef4f92c2 Reviewed-on: https://go-review.googlesource.com/30696Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Emmanuel Odeke authored
Fixes #17374. Change-Id: Ic89c35aaa31f35a8a4e3ffa09f49b68f08127625 Reviewed-on: https://go-review.googlesource.com/30718Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
-
- 08 Oct, 2016 2 commits
-
-
Mikio Hara authored
Updates golang_org/x/net/lif to rev 084869a for: - lif: rename internal types and constants generated by cgo Change-Id: Icf478d60f5ef35800966c62dcf046f7fe50204ff Reviewed-on: https://go-review.googlesource.com/30731 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
Updates golang_org/x/net/route to rev f09c466 for: - route: fix typo - route: test helper code cleanup Change-Id: If39f0e947dc56f3b0f38190035d2f47c8d847c74 Reviewed-on: https://go-review.googlesource.com/30730 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 07 Oct, 2016 11 commits
-
-
Michael Munday authored
TESTB was implemented as AND $0xff, Rx, REGTMP. Unfortunately there is no 3-operand AND-with-immediate instruction and so it was emulated by the assembler using two instructions. This CL uses CMPW instead of AND and also optimizes CMPW to use the chi instruction where possible. Overall this CL reduces the size of the .text section of the bin/go binary by ~2%. Change-Id: Ic335c29fc1129378fcbb1265bfb10f5b744a0f3f Reviewed-on: https://go-review.googlesource.com/30690 Run-TryBot: Michael Munday <munday@ca.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
No need to build a bespoke dom tree here when we might have one cached already. The allocations for the dom tree were also more expensive than they needed to be. Fixes #12021 Change-Id: I6a967880aee03660ad6fc293f8fc783779cae11d Reviewed-on: https://go-review.googlesource.com/30671 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Andrew Pogrebnoy authored
The algorithm for placing a phi nodes in small functions now unreachable. This patch fix that. Change-Id: I253d745b414fa12ee0719459c28e78a69c6861ae Reviewed-on: https://go-review.googlesource.com/30106 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Austin Clements authored
Currently these are labeled "MARK", which was accurate in the STW collector, but these really indicate mark termination now, since marking happens for the full duration of the concurrent GC. Re-label them as "MARK TERMINATION" to clarify this. Change-Id: Ie98bd961195acde49598b4fa3f9e7d90d757c0a6 Reviewed-on: https://go-review.googlesource.com/30018Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
-
Austin Clements authored
Currently, the process-wide GC state is attributed to the P that happened to perform the allocation that exceeded the GC trigger. This is pretty arbitrary and makes it hard to see when GC is running since the GC spans are intermingled with a lot of other trace noise. The current display is particularly confusing because it creates three sub-rows in the P row that can overlap each other. Usually a P has just two sub-rows: one showing the current G and another showing that G's activity. However, because GC is attributed to a proc, it winds up as a third row that neither subsumes nor is subsumed by any other row. This in turn screws up the trace's layout and results in overlapping events. Fix these problems by creating a new dedicated row like the existing "Network" and "Timer" rows and displaying process-wide GC events in this row. Mark termination and sweep events still appear in their respective P rows because these are meaningfully attributed. Change-Id: Ie1a1c6cf8c446e4b043f10f3968f91ff1b546d15 Reviewed-on: https://go-review.googlesource.com/30017Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
-
Austin Clements authored
When GC is disabled, we set gcpercent to -1. However, we still use gcpercent to compute several values, such as next_gc and gc_trigger. These calculations are meaningless when gcpercent is -1 and result in meaningless values. This is okay in a sense because we also never use these values if gcpercent is -1, but they're confusing when exposed to the user, for example via MemStats or the execution trace. It's particularly unfortunate in the execution trace because it attempts to plot the underflowed value of next_gc, which scales all useful information in the heap row into oblivion. Fix this by making next_gc ^0 when gcpercent < 0. This has the advantage of being true in a way: next_gc is effectively infinite when gcpercent < 0. We can also detect this special value when updating the execution trace and report next_gc as 0 so it doesn't blow up the display of the heap line. Change-Id: I4f366e4451f8892a4908da7b2b6086bdc67ca9a9 Reviewed-on: https://go-review.googlesource.com/30016Reviewed-by: Rick Hudson <rlh@golang.org>
-
Keith Randall authored
Not sure why it was ever disabled (early SSA work?) but it passes now. Change-Id: I76439cacdbd286ce077f7e08c4d0663396a0cd8f Reviewed-on: https://go-review.googlesource.com/30672Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Keith Randall authored
No point doing this check all the time. Fixes #15621 Change-Id: I1966c061986fe98fe9ebe146d6b9738c13cef724 Reviewed-on: https://go-review.googlesource.com/30670Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Russ Cox authored
This CL makes minor adjustment to the handling of spaces and newlines and then documents the result. The semantic adjustment mainly concerns the handling of a run of spaces following a newline in the format, like in "\n ". Previously, that run of spaces was ignored entirely, leading to paradoxes like the format "1 \n 2" not matching itself as input. Now, spaces following a newline in the format match zero or more spaces following the corresponding newline in the input. The changes to the test suite show how minor the semantic adjustments are and how they make the behavior more regular than previously. This CL also updates the documentation to explain the handling of spaces more precisely, incorporating the draft from CL 17723 but describing the newly introduced behavior. Fixes #13565. Change-Id: I129666e9ba42de3c28b67f75cb47488e9a4c1867 Reviewed-on: https://go-review.googlesource.com/30611Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
There are no semantic changes here, just tests to establish the status quo. A followup CL will make some semantic changes, the (limited) scope of which should be clear from the number of tests that change. For #13565. Change-Id: I960749cf59d4dfe39c324875bcc575096654f883 Reviewed-on: https://go-review.googlesource.com/30610 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Matthew Dempsky authored
Anonymous pointer and slice types are very common and identical anyway, so just reuse them rather than allocating new ones everywhere they appear. Turns out to be a small code/stack size win because SSA relies on gc.Type identity for reusing temporary stack slots: text data bss dec hex filename 6453005 231643 146328 6830976 683b80 go.old 6446660 231643 146328 6824631 6822b7 go.new Saves on memory usage during compile time too, and maybe a small CPU time win, but the benchmarks are pretty noisy: name old time/op new time/op delta Template 342ms ± 8% 339ms ± 9% ~ (p=0.332 n=99+99) Unicode 183ms ± 9% 181ms ±11% ~ (p=0.274 n=95+98) GoTypes 1.05s ± 4% 1.04s ± 3% -1.22% (p=0.000 n=97+95) Compiler 4.49s ± 7% 4.46s ± 6% ~ (p=0.058 n=96+91) name old user-ns/op new user-ns/op delta Template 520M ±17% 522M ±20% ~ (p=0.544 n=98+100) Unicode 331M ±27% 327M ±30% ~ (p=0.615 n=98+98) GoTypes 1.54G ±10% 1.53G ±12% ~ (p=0.173 n=99+100) Compiler 6.33G ±10% 6.33G ±10% ~ (p=0.682 n=98+98) name old alloc/op new alloc/op delta Template 44.5MB ± 0% 44.1MB ± 0% -0.80% (p=0.000 n=97+99) Unicode 37.5MB ± 0% 37.3MB ± 0% -0.44% (p=0.000 n=98+100) GoTypes 126MB ± 0% 124MB ± 0% -1.41% (p=0.000 n=98+99) Compiler 518MB ± 0% 508MB ± 0% -1.90% (p=0.000 n=98+100) name old allocs/op new allocs/op delta Template 441k ± 0% 434k ± 0% -1.76% (p=0.000 n=100+97) Unicode 368k ± 0% 365k ± 0% -0.69% (p=0.000 n=99+99) GoTypes 1.26M ± 0% 1.23M ± 0% -2.27% (p=0.000 n=100+99) Compiler 4.60M ± 0% 4.46M ± 0% -2.96% (p=0.000 n=100+99) Change-Id: I94abce5c57aed0f9c48f567b3ac24c627d4c7c91 Reviewed-on: https://go-review.googlesource.com/30632 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 06 Oct, 2016 14 commits
-
-
Ian Lance Taylor authored
On 64-bit big-endian GNU/Linux machines we need to treat sigset as a single uint64, not as a pair of uint32 values. This fix was already made for s390x, but not for ppc64 (which is big-endian--the little endian version is known as ppc64le). So copy os_linux_390.x to os_linux_be64.go, and use build constraints as needed. Fixes #17361 Change-Id: Ia0eb18221a8f5056bf17675fcfeb010407a13fb0 Reviewed-on: https://go-review.googlesource.com/30602 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
This simply documents the status quo accepted by cmd/compile, gccgo, and go/types. The new language matches the language used for indices of index expressions for arrays and slices. Fixes #16679. Change-Id: I65447889fbda9d222f2a9e6c10334d1b38c555f0 Reviewed-on: https://go-review.googlesource.com/30474Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
Also, document behavior explicitly for all SetString implementations. Fixes #17001. Change-Id: Iccc882b4bc7f8b61b6092f330e405c146a80dc98 Reviewed-on: https://go-review.googlesource.com/30472Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Brad Fitzpatrick authored
Updates #17366 Change-Id: Ia4bd3c74c48b85f186586184a7c2b66d3b80fc9c Reviewed-on: https://go-review.googlesource.com/30596 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Alexander Döring authored
Updates #16360 Change-Id: I941519981ff5bda3a113e14fa6be718eb4d2bf83 Reviewed-on: https://go-review.googlesource.com/30554 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Fixes #15247 Change-Id: I942fb2eacd1b54bab66cc147a6b047a3ffce0b84 Reviewed-on: https://go-review.googlesource.com/30595Reviewed-by: Russ Cox <rsc@golang.org>
-
Yasuhiro Matsumoto authored
Handle NTFS timestamp, UNIX timestamp, Extended extra timestamp. Writer supports only Extended extra timestamp field, matching most zip creators. Fixes #10242. Change-Id: Id665db274e63def98659231391fb77392267ac1e Reviewed-on: https://go-review.googlesource.com/18274 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Michael Munday authored
We insert extensions when lowering comparisons and they were blocking constant folding. Change-Id: I804bbf91c7606612ffe921a90853844a57e55955 Reviewed-on: https://go-review.googlesource.com/30541Reviewed-by: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Simon Rawet authored
AddDate now retrieves location from t.Location() to ensure that it never calls Date with a nil location. Added test for this bug on all Time's methods Fixes #15852 Change-Id: Id2a222af56993f741ad0b802a2c3b89e8e463926 Reviewed-on: https://go-review.googlesource.com/23561Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org>
-
David Chase authored
It tests the behavior of the old deleted compiler. Fixes #17362. Change-Id: Ia2fdec734c5cbe724a9de562ed71598f67244ab3 Reviewed-on: https://go-review.googlesource.com/30593Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Hajime Hoshi authored
Change-Id: Id2a9fc1e9e70eaf5f25ddc7476061e06abcf60e4 Reviewed-on: https://go-review.googlesource.com/30573Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Robert Griesemer authored
Fixes #17281. Change-Id: I4e639998dbe3baa98879f1becc37d7c4d19351e7 Reviewed-on: https://go-review.googlesource.com/30473Reviewed-by: Alan Donovan <adonovan@google.com>
-
Cherry Zhang authored
Fixes #17354. Change-Id: I0e018c8c3e791fc6cc1925dbbc18c2151ba9a111 Reviewed-on: https://go-review.googlesource.com/30539 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Using 387 mode was computing it without underflow to zero, apparently due to an 80-bit intermediate. Avoid underflow even with 64-bit floats. This eliminates the TODOs in the test suite. Fixes linux-386-387 build and fixes #11441. Change-Id: I8abaa63bfdf040438a95625d1cb61042f0302473 Reviewed-on: https://go-review.googlesource.com/30540 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-