- 05 Mar, 2015 9 commits
-
-
Russ Cox authored
Add unused (but initialized) from3 field to ytab, f3t to movtab. Remove level of indentation in movtab processing. Change-Id: I8475988f46b541ecaccf8d34608da8bef7d12e24 Reviewed-on: https://go-review.googlesource.com/6892Reviewed-by: Rob Pike <r@golang.org>
-
Dave Cheney authored
Node.Needzero only has two values and acts as a bool, so make it a bool. Change-Id: Ica46e5ebafbe478017ea52ce6bb335f404059677 Reviewed-on: https://go-review.googlesource.com/6800Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Dave Cheney <dave@cheney.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shenghou Ma authored
Fixes #10066. Change-Id: I43c423793dd094989e921e163a06b12181a35719 Signed-off-by: Shenghou Ma <minux@golang.org> Reviewed-on: https://go-review.googlesource.com/6750 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Chris Manghane <cmang@golang.org>
-
Shenghou Ma authored
Change-Id: I520a0f2c2d14f744a5d2e8cf93963eec1cf3e9ba Signed-off-by: Shenghou Ma <minux@golang.org> Reviewed-on: https://go-review.googlesource.com/6732Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Russ Cox authored
This avoids repeated allocation and map lookups when constructing the pcln tables. For 6g compiling cmd/internal/gc/*.go this saves about 8% wall time. Change-Id: I6a1a80e278ae2c2a44bd1537015ea7b4e7a4d6ca Reviewed-on: https://go-review.googlesource.com/6793Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
Remove blank lines and merge lone imports into blocks. Change-Id: Ib46dad584456909969f1ba3a2c7f5667abf336ae Reviewed-on: https://go-review.googlesource.com/6792Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
Change-Id: I764933f4928bb9d0d119fbfe44a193ce1449b61e Reviewed-on: https://go-review.googlesource.com/6791Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
Change-Id: Ib813eb5960c3310b1c919f25f687560f4f9d63b0 Reviewed-on: https://go-review.googlesource.com/6820Reviewed-by: Russ Cox <rsc@golang.org>
-
Michael Hudson-Doyle authored
For OSes that use elf on intel, 2*Ptrsize bytes are reserved for TLS. But only one pointer (g) has been stored in the TLS for a while now. So we can set it to just Ptrsize, which happily matches what happens when externally linking. Fixes #9913 Change-Id: Ic816369d3a55a8cdcc23be349b1a1791d53f5f81 Reviewed-on: https://go-review.googlesource.com/6584 Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 04 Mar, 2015 24 commits
-
-
David Crawshaw authored
Accidental semantics change in 4c6364a8. Change-Id: I0bbfc441662d79af4dbac6f9fc4e3a485adfb924 Reviewed-on: https://go-review.googlesource.com/6831Reviewed-by: Minux Ma <minux@golang.org>
-
Nigel Tao authored
Change-Id: I83de9d83708edc8d196bbcfdc7d2ba7ffaff50d2 Reviewed-on: https://go-review.googlesource.com/6586Reviewed-by: Rob Pike <r@golang.org>
-
Alex Brainman authored
Fixes #10072 Change-Id: I1f73c8829a89144d49433a36a4e64223c74af954 Reviewed-on: https://go-review.googlesource.com/6585Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
Change-Id: Ice4f78e74ec3025a974ffd9ca5e3d28bb3164f40 Reviewed-on: https://go-review.googlesource.com/6794Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com> Run-TryBot: David Crawshaw <crawshaw@golang.org>
-
Shenghou Ma authored
Change-Id: Id1927180ecd18b849727225adea05465d36b3973 Reviewed-on: https://go-review.googlesource.com/6210Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Rick Hudson authored
This is an experiment to see if removing the boundary bit logic will lead to fewer cache misses and improved performance. Instead of using boundary bits we use the span information to get element size and use some bit whacking to get the boundary without having to touch the random heap bits which cause cache misses. Furthermore once the boundary bit is removed we can either use that bit for a simpler checkmark routine or we can reduce the number of bits in the GC bitmap to 2 bits per pointer sized work. For example the 2 bits at the boundary can be used for marking and pointer/scalar differentiation. Since we don't need the mark bit except at the boundary nibble of the object other nibbles can use this bit as a noscan bit to indicate that there are no more pointers in the object. Currently the changed included in this CL slows down the garbage benchmark. With the boundary bits garbage gives 5.78 and without (this CL) it gives 5.88 which is a 2% slowdown. Change-Id: Id68f831ad668176f7dc9f7b57b339e4ebb6dc4c2 Reviewed-on: https://go-review.googlesource.com/6665Reviewed-by: Austin Clements <austin@google.com>
-
Robert Griesemer authored
Change-Id: I932c2f1b1d27c437722cd27d2001b085a655c572 Reviewed-on: https://go-review.googlesource.com/6722Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Change-Id: Ide0615542d67b7d81bf6c56aab550e142a8789f7 Reviewed-on: https://go-review.googlesource.com/6682Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Change-Id: If04840c34b0ac5168ce1699eae880f04ae21c84c Reviewed-on: https://go-review.googlesource.com/6680Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Shifts are trivially implemented by combining Float.MantExp and Float.SetMantExp. Change-Id: Ia2fb49297d8ea7aa7d64c8b1318dc3dc7c8af2f7 Reviewed-on: https://go-review.googlesource.com/6671Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
This change represents Accuracy as a bit pattern rather than an ordered value; with a new value Undef which is both Below and Above. Change-Id: Ibb96294c1417fb3cf2c3cf2374c993b0a4e106b3 Reviewed-on: https://go-review.googlesource.com/6650Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Change-Id: I9a6ebb747d5b9756c214bdeb19f60820602d7a24 Reviewed-on: https://go-review.googlesource.com/6340Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
This change introduces NaNs (for situations like Inf-Inf, etc.). The implementation is incomplete (the four basic operations produce a NaN if any of the operands is an Inf or a NaN); and some operations produce incorrect accuracy for NaN arguments. These are known bugs which are documented. Change-Id: Ia88841209e47930681cef19f113e178f92ceeb33 Reviewed-on: https://go-review.googlesource.com/6540Reviewed-by: Alan Donovan <adonovan@google.com>
-
Russ Cox authored
These benchmarks show the effect of the combination of this change and Rick's pending CL 6665. Code with interior pointers is helped much more than code without, but even code without doesn't suffer too badly. benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 6989407768 6851728175 -1.97% BenchmarkFannkuch11 4416250775 4405762558 -0.24% BenchmarkFmtFprintfEmpty 134 130 -2.99% BenchmarkFmtFprintfString 491 402 -18.13% BenchmarkFmtFprintfInt 430 420 -2.33% BenchmarkFmtFprintfIntInt 748 663 -11.36% BenchmarkFmtFprintfPrefixedInt 602 534 -11.30% BenchmarkFmtFprintfFloat 728 699 -3.98% BenchmarkFmtManyArgs 2528 2507 -0.83% BenchmarkGobDecode 17448191 17749756 +1.73% BenchmarkGobEncode 14579824 14370183 -1.44% BenchmarkGzip 656489990 652669348 -0.58% BenchmarkGunzip 141254147 141099278 -0.11% BenchmarkHTTPClientServer 94111 93738 -0.40% BenchmarkJSONEncode 36305013 36696440 +1.08% BenchmarkJSONDecode 124652000 128176454 +2.83% BenchmarkMandelbrot200 6009333 5997093 -0.20% BenchmarkGoParse 7651583 7623494 -0.37% BenchmarkRegexpMatchEasy0_32 213 213 +0.00% BenchmarkRegexpMatchEasy0_1K 511 494 -3.33% BenchmarkRegexpMatchEasy1_32 186 187 +0.54% BenchmarkRegexpMatchEasy1_1K 1834 1827 -0.38% BenchmarkRegexpMatchMedium_32 427 412 -3.51% BenchmarkRegexpMatchMedium_1K 154841 153086 -1.13% BenchmarkRegexpMatchHard_32 7473 7478 +0.07% BenchmarkRegexpMatchHard_1K 233587 232272 -0.56% BenchmarkRevcomp 918797689 944528032 +2.80% BenchmarkTemplate 167665081 167773121 +0.06% BenchmarkTimeParse 631 636 +0.79% BenchmarkTimeFormat 672 666 -0.89% Change-Id: Ia923de3cdb3993b640fe0a02cbe2c7babc16f32c Reviewed-on: https://go-review.googlesource.com/6782Reviewed-by: Rick Hudson <rlh@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Matthew Dempsky authored
Gc already calculates n as an int, so converting to int64 to call growslice doesn't serve any purpose except to emit slightly larger code on 32-bit platforms. Passing n as an int shrinks godoc's text segment by 8kB (9472633 => 9464133) when building for ARM. Change-Id: Ief9492c21d01afcb624d3f2a484df741450b788d Reviewed-on: https://go-review.googlesource.com/6231Reviewed-by: Dmitry Vyukov <dvyukov@google.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Russ Cox authored
SHRQ CX, DX:AX is changing to SHRQ CX, AX, DX. This is the first step: using SHRQ From=CX, From3=AX, To=DX as the preferred encoding. Once the assemblers and 6g have been updated, support for the old encoding can be removed. Change-Id: Ie603fb8ac25a6df78e42f7ddcae078a7684a7c26 Reviewed-on: https://go-review.googlesource.com/6693Reviewed-by: Rob Pike <r@golang.org>
-
Dmitry Vyukov authored
The unbounded list-based defer pool can grow infinitely. This can happen if a goroutine routinely allocates a defer; then blocks on one P; and then unblocked, scheduled and frees the defer on another P. The scenario was reported on golang-nuts list. We've been here several times. Any unbounded local caches are bad and grow to infinite size. This change introduces central defer pool; local pools become fixed-size with the only purpose of amortizing accesses to the central pool. Freedefer now executes on system stack to not consume nosplit stack space. Change-Id: I1a27695838409259d1586a0adfa9f92bccf7ceba Reviewed-on: https://go-review.googlesource.com/3967Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
-
Dmitry Vyukov authored
The unbounded list-based sudog cache can grow infinitely. This can happen if a goroutine is routinely blocked on one P and then unblocked and scheduled on another P. The scenario was reported on golang-nuts list. We've been here several times. Any unbounded local caches are bad and grow to infinite size. This change introduces central sudog cache; local caches become fixed-size with the only purpose of amortizing accesses to the central cache. The change required to move sudog cache from mcache to P, because mcache is not scanned by GC. Change-Id: I3bb7b14710354c026dcba28b3d3c8936a8db4e90 Reviewed-on: https://go-review.googlesource.com/3742Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
-
Shenghou Ma authored
The original C code is: (x->type & SHIDDEN) ? 2 : 0, however when cleaning up the code for c2go, the ternary operator is rewritten in the exact opposite way. We need a test for this, and that's being tracked as #10070. Fixes #10067. Change-Id: I24a5e021597d8bc44218c6e75bab6446513b76cf Signed-off-by: Shenghou Ma <minux@golang.org> Reviewed-on: https://go-review.googlesource.com/6730Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Michael Hudson-Doyle authored
The creation of liblink and subsequent introduction of more explicit TLS handling broke 6l's (unsupported) -shared flag. This change adds -shared flags to cmd/asm and 6g and changes liblink to generate shared- library compatible instruction sequences when they are passed, and changes 6l to emit the appropriate ELF relocation. A proper fix probably also requires go tool changes. Fixes #9652. Change-Id: I7b7718fe7305c802ac994f4a5c8de68cfbe6c76b Reviewed-on: https://go-review.googlesource.com/4321Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Brad Fitzpatrick authored
Fixes the linux-amd64-nocgo builder. Regression from https://golang.org/cl/6531 Change-Id: Ibffd1ecfee4a888605ed54196f53956ae42e591c Reviewed-on: https://go-review.googlesource.com/6700Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Nigel Tao authored
Change-Id: I01e328fc3644b679bacf2209c3d7ade9d8bffe53 Reviewed-on: https://go-review.googlesource.com/6551Reviewed-by: Rob Pike <r@golang.org>
-
Rob Pike authored
cmd/asm/internal/asm no longer imports obj/$GOARCH, only obj itself. Change-Id: I7c0d107524d833b4a1b6e6a497cca4addadee570 Reviewed-on: https://go-review.googlesource.com/6670Reviewed-by: Russ Cox <rsc@golang.org>
-
Rob Pike authored
The name g is an alias for R10 and R30, respectively. Have Rconv print the alias, for consistency with the input language. Change-Id: Ic3f40037884a0c8de5089d8c8a8efbcdc38c0d56 Reviewed-on: https://go-review.googlesource.com/6630Reviewed-by: Minux Ma <minux@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
- 03 Mar, 2015 7 commits
-
-
Brad Fitzpatrick authored
This will enable test sharding over multiple VMs, to speed trybot answers. Update #10029 Change-Id: Ie277c6459bc38005e4d6af14d22effeaa0a4667e Reviewed-on: https://go-review.googlesource.com/6531Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
-
David Crawshaw authored
Issue #10043 Change-Id: I6ce7f303cd96ac575f7a673dd4a459339382d22e Reviewed-on: https://go-review.googlesource.com/6692Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David Crawshaw authored
We now wait until we see the completed prompt from a command before proceeding. This seems to cut down on a spurious error I have seen this afternoon. Change-Id: Ic0a3481d8c265c3c3b4449ec7ac1c2752b85b0b6 Reviewed-on: https://go-review.googlesource.com/6691Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
-
Rob Pike authored
Just a missed case in in the handling of branches. Fixes #10065 Change-Id: I6be054d30bf1f383c12b4c7626abd5f8ae22b22e Reviewed-on: https://go-review.googlesource.com/6631Reviewed-by: Minux Ma <minux@golang.org>
-
Dave Cheney authored
Apply mask fix from 527b478e to ppc64. Change-Id: Iac62228f0f04fa8b138e21d82786026158267aaf Reviewed-on: https://go-review.googlesource.com/6582Reviewed-by: Rob Pike <r@golang.org>
-
Michael Hudson-Doyle authored
c2go produced accurate but complex constant definitions like "ElfSymBindLocal = 0 + iota - 67" which break when any constants are added above them in the list. Change them to explicit values in separate blocks by class. I wrote a little program (using awk) to dump the values of the constants: https://gist.github.com/mwhudson/82f82008279a38ce584e and confirmed that its output before and after this change is the same. Change-Id: Ib4aea4a0d688a16cdcb76af4715d1a97ec0f013c Reviewed-on: https://go-review.googlesource.com/6581 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
- use Bvec, not *Bvec, and bulk allocate backing store - use range loops - put Bvecs in BasicBlock struct instead of indexing into parallel slices Change-Id: I5cb30f50dccb4d38cc18fae422f7f132c52876be Reviewed-on: https://go-review.googlesource.com/6602Reviewed-by: Rob Pike <r@golang.org>
-