- 12 May, 2019 1 commit
-
-
Joel Sing authored
These are encountered when compiling with -linkmode=internal on openbsd/arm64. Fixes #31940 Change-Id: I851e6a7da0a3fb3e23b4fa2ed8dce3051c680f11 Reviewed-on: https://go-review.googlesource.com/c/go/+/176697 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
- 11 May, 2019 2 commits
-
-
Tamir Duberstein authored
Change-Id: If5a4d8eff4e51d72fb9dc1d5db2bfe674ec5753b Reviewed-on: https://go-review.googlesource.com/c/go/+/176717Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Cherry Zhang authored
Adjust the dummy use function to a real use. As suggested by the println calls in the test, nilptr2.go supposes to check that a used nil pointer dereference panics. This use function is not real enough so an optimized compiler such as gccgo could eliminate the call. The spec requires that even a dummy use would cause a panic. Unfortunately, due to #31151 this is not true for gccgo at -O1 or above. Change-Id: Ie07c8a5969ab94dad82d4f7cfec30597c25b7c46 Reviewed-on: https://go-review.googlesource.com/c/go/+/176579 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 10 May, 2019 9 commits
-
-
Josh Bleecher Snyder authored
When the SSA rules are re-generated to log rules, they write output like: rewrite AMD64.rules:527 rewrite AMD64.rules:427 rewrite AMD64.rules:494 This is silly; there are no non-rewrite lines in the file. Furthermore, the rulelog file tends to be gigantic for any non-trivial compilation (measured in gigabytes). Remove the "rewrite " prefix. No impact to normal builds. Change-Id: I955995c1cc5f27a4a6a3849e19082ecb3e40bd4f Reviewed-on: https://go-review.googlesource.com/c/go/+/176677 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Jay Conrod authored
Fixes #31971 Change-Id: I127659be145e348fae20930615666d67dc7971ef Reviewed-on: https://go-review.googlesource.com/c/go/+/176468 Run-TryBot: Jay Conrod <jayconrod@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Caleb Spare authored
In CL 173722, we moved the flag registration in the testing package into an Init function. In order to avoid needing changes to user code, we called Init automatically as part of testing.MainStart. However, that isn't early enough if flag.Parse is called before the tests run, as part of package initialization. Fix this by injecting a bit of code to call testing.Init into test packages. This runs before any other initialization code in the user's test package, so testing.Init will be called before any user code can call flag.Parse. Fixes #31859 Change-Id: Ib42cd8d3819150c49a3cecf7eef2472319d0c7e9 Reviewed-on: https://go-review.googlesource.com/c/go/+/176098 Run-TryBot: Caleb Spare <cespare@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Yury Smolsky authored
Vet help prints only to stdout. Fixes #31885 Change-Id: If6089a371fa8e21828eba2e23cddd2d19fb69e8a Reviewed-on: https://go-review.googlesource.com/c/go/+/176617Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Jay Conrod authored
This fixes TestScript/cover_pkgall_multiple_mains, which started failing after CL 174657. When compiling main packages with coverage instrumentation (e.g., for -coverpkg all), we now pass -p with the full import path instead of '-p main'. This avoids link errors 'duplicate symbol main.main (types 1 and 1)'. Fixes #31946 Change-Id: Id147527b1dbdc14bb33ac133c30d50c250b4365c Reviewed-on: https://go-review.googlesource.com/c/go/+/176558 Run-TryBot: Jay Conrod <jayconrod@google.com> Reviewed-by: Cherry Zhang <cherryyz@google.com> Reviewed-by: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Russ Cox authored
I forgot that in Go assembly, x+16(SP) is not the same as 16(SP). The former is the virtual stack pointer (one word below FP on x86) while the latter is the actual stack pointer. Change-Id: Ibb7012bb97261949f5e1a0dc70869d9a6f50aa99 Reviewed-on: https://go-review.googlesource.com/c/go/+/176557 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Bryan C. Mills authored
These tests were added in CL 174206. They required a 'git' binary and network access in an earlier draft, but now use the test-local module proxy instead, so no longer need to be skipped when those resources are not present. Updates #30634 Change-Id: I5f36c6c776209a89bc45d133847df5052b55da59 Reviewed-on: https://go-review.googlesource.com/c/go/+/176537 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Jay Conrod authored
Follow-up to CL 174061. This also fixes a break after GOSUMDB was introduced. Updates #31946 Updates #31673 Updates #31287 Updates #27171 Change-Id: I8e91e857f301b6b73cc90f2f2c68523412e22b46 Reviewed-on: https://go-review.googlesource.com/c/go/+/176417 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Updates #27739: reduces package ssa's allocated space by 3.77%. maxrss is harder to measure, but using best-of-three-runs as reported by /usr/bin/time -l, I see ~2% reduction in maxrss. We still have a long way to go, though; the new maxrss is still 1.1gb. name old alloc/op new alloc/op delta Template 38.8MB ± 0% 37.7MB ± 0% -2.77% (p=0.008 n=5+5) Unicode 28.2MB ± 0% 28.1MB ± 0% -0.20% (p=0.008 n=5+5) GoTypes 131MB ± 0% 127MB ± 0% -2.94% (p=0.008 n=5+5) Compiler 606MB ± 0% 587MB ± 0% -3.21% (p=0.008 n=5+5) SSA 2.14GB ± 0% 2.06GB ± 0% -3.77% (p=0.008 n=5+5) Flate 24.0MB ± 0% 23.3MB ± 0% -3.00% (p=0.008 n=5+5) GoParser 28.8MB ± 0% 28.1MB ± 0% -2.61% (p=0.008 n=5+5) Reflect 83.8MB ± 0% 81.5MB ± 0% -2.71% (p=0.008 n=5+5) Tar 36.4MB ± 0% 35.4MB ± 0% -2.73% (p=0.008 n=5+5) XML 47.9MB ± 0% 46.7MB ± 0% -2.49% (p=0.008 n=5+5) [Geo mean] 84.6MB 82.4MB -2.65% name old allocs/op new allocs/op delta Template 379k ± 0% 379k ± 0% -0.05% (p=0.008 n=5+5) Unicode 340k ± 0% 340k ± 0% ~ (p=0.151 n=5+5) GoTypes 1.36M ± 0% 1.36M ± 0% -0.06% (p=0.008 n=5+5) Compiler 5.49M ± 0% 5.48M ± 0% -0.03% (p=0.008 n=5+5) SSA 17.5M ± 0% 17.5M ± 0% -0.03% (p=0.008 n=5+5) Flate 235k ± 0% 235k ± 0% -0.04% (p=0.008 n=5+5) GoParser 302k ± 0% 302k ± 0% -0.04% (p=0.008 n=5+5) Reflect 976k ± 0% 975k ± 0% -0.10% (p=0.008 n=5+5) Tar 352k ± 0% 352k ± 0% -0.06% (p=0.008 n=5+5) XML 436k ± 0% 436k ± 0% -0.03% (p=0.008 n=5+5) [Geo mean] 842k 841k -0.04% Change-Id: I0ab6631b5a0bb6303c291dcb0367b586a4e584fb Reviewed-on: https://go-review.googlesource.com/c/go/+/176221 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 09 May, 2019 28 commits
-
-
Russ Cox authored
The new prototypes of duffzero and duffcopy must be accompanied by functions. Otherwise buildmode=shared (in particular, misc/cgo/testshared) has missing symbols. The right fix, of course, is to implement these on s390x. For #31916. Change-Id: I3efff5e3011956341e1b26223a4847a8a91a0453 Reviewed-on: https://go-review.googlesource.com/c/go/+/176397Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Brad Fitzpatrick authored
Fixes #31949 Change-Id: Ib96a43e4c56a00c5ba04e4d213255a063058ae08 Reviewed-on: https://go-review.googlesource.com/c/go/+/176337Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
Change-Id: Ifc8a731a2efd94fdc4fc6f26ca6e16f0c0292211 Reviewed-on: https://go-review.googlesource.com/c/go/+/176178Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "go vet -unsafeptr=false runtime" happy for nacl/*, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: I6adb4a7b0c2b03d901fba37f9c05e74e5b7b6691 Reviewed-on: https://go-review.googlesource.com/c/go/+/176107Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "go vet -unsafeptr=false runtime" happy for windows/*, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: If37ab2b3f6fca4696b8a6afb2ef11ba6c4fb42e0 Reviewed-on: https://go-review.googlesource.com/c/go/+/176106Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "go vet -unsafeptr=false runtime" happy for these GOOSes, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: I63c4805bdd44b301072da66c77086940e2a2765e Reviewed-on: https://go-review.googlesource.com/c/go/+/176105 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "go vet -unsafeptr=false runtime" happy for these GOOSes, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: Id2e1223497bd0cd6e880cd81f3ece6363e58219f Reviewed-on: https://go-review.googlesource.com/c/go/+/176104 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "go vet -unsafeptr=false runtime" happy for these GOOS/GOARCHes, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: Ic64f7f4034695dd4c32c9b7f258960faf3742a83 Reviewed-on: https://go-review.googlesource.com/c/go/+/176103 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "go vet -unsafeptr=false runtime" happy for these GOOS/GOARCHes, except for an unresolved complaint on mips/mipsle that is a bug in vet, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: I6ef7e982a2fdbbfbc22cee876ca37ac54d8109e5 Reviewed-on: https://go-review.googlesource.com/c/go/+/176102 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "GOOS=linux GOARCH=arm go vet -unsafeptr=false runtime" happy, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: Ifae75b832320b5356ac8773cf85055bfb2bd7214 Reviewed-on: https://go-review.googlesource.com/c/go/+/176101 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "GOOS=linux GOARCH=amd64 go vet -unsafeptr=false runtime" happy, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: I4ca1acb02f4666b102d25fcc55fac96b8f80379a Reviewed-on: https://go-review.googlesource.com/c/go/+/176100 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. This CL makes "GOOS=linux GOARCH=386 go vet -unsafeptr=false runtime" happy, while keeping "GO_BUILDER_NAME=misc-vetall go tool dist test" happy too. For #31916. Change-Id: I3e5586a7ff6e359357350d0602c2259493280ded Reviewed-on: https://go-review.googlesource.com/c/go/+/176099 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Michael Anthony Knyszek authored
Trybots started failing on js/wasm after golang.org/cl/175797 landed, but it seemed completely unrelated. It would fail very consistently on the heapsampling.go test. Digging deeper it was very difficult to ascertain what was going wrong, but clearly m.locks for some m was non-zero when calling into the scheduler. The failure comes from the fact that lock calls into gosched, but it's unclear how exactly we got there in the first place; there should be no preemption in this single-threaded context. Furthermore, lock shouldn't be calling gosched_m at all because in a single-threaded context, the thread shouldn't be preempted until it actually unlocks. But, digging further it turns out the implementation in lock_js.go never incremented or decremented m.locks. This is definitely wrong because many parts of the runtime depend on that value being set correctly. So, this change removes the loop which calls into gosched_m (which should be unnecessary) and increments and decrements m.locks appropriately. This appears to fix the aforementioned failure. Change-Id: Id214c0762c3fb2b405ff55543d7e2a78c17443c4 Reviewed-on: https://go-review.googlesource.com/c/go/+/176297 Run-TryBot: Michael Knyszek <mknyszek@google.com> Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Russ Cox authored
These ridiculous tags are testing what happens with very long tags. There is no need for them to be malformed as well. Fix them to make vet happier. Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. For #31916. Change-Id: I100aed5230fcde41676c79c7074c69c16ea4b96d Reviewed-on: https://go-review.googlesource.com/c/go/+/176111 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Renaming the method makes clear, both to readers and to vet, that this method is not the implementation of io.ByteWriter. Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. For #31916. Change-Id: I5b509eb7f0118d5f2d3c6e352ff2849cd5a3071e Reviewed-on: https://go-review.googlesource.com/c/go/+/176110 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Renaming the method makes clear, both to readers and to vet, that this method is not the implementation of io.ByteWriter. Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. For #31916. Change-Id: I79da062ca6469b62a6b9e284c6cf2413c7425249 Reviewed-on: https://go-review.googlesource.com/c/go/+/176109 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Jay Conrod authored
Added documentation that explains special cases for vendored packages in the standard library and provides instructions for updating vendor directories. Fixes #31806 Change-Id: Ib697ed18eae28023ab0bfb9f4d250992c393571d Reviewed-on: https://go-review.googlesource.com/c/go/+/174999Reviewed-by: Bryan C. Mills <bcmills@google.com>
-
Russ Cox authored
Renaming the method makes clear, both to readers and to vet, that this method is not the implementation of io.Seeker: it cannot fail. Working toward making the tree vet-safe instead of having so many exceptions in cmd/vet/all/whitelist. For #31916. Change-Id: I3e6ad7264cb0121b4b76935450cccb71d533e96b Reviewed-on: https://go-review.googlesource.com/c/go/+/176108 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Anthony Knyszek authored
This change makes it so that during scavenging we split spans when the span we have next for scavenging is larger than the amount of work we have left to do. The purpose of this change is to improve the worst-case behavior of the scavenger: currently, if the scavenger only has a little bit of work to do but sees a very large free span, it will scavenge the whole thing, spending a lot of time to get way ahead of the scavenge pacing for no reason. With this change the scavenger should follow the pacing more closely, but may still over-scavenge by up to a physical huge page since the splitting behavior avoids breaking up huge pages in free spans. This change is also the culmination of the scavenging improvements, so we also include benchmark results for this series (starting from "runtime: merge all treaps into one implementation" until this patch). This patch stack results in average and peak RSS reductions (up to 11% and 7% respectively) for some benchmarks, with mostly minimal performance degredation (3-4% for some benchmarks, ~0% geomean). Each of these benchmarks was executed with GODEBUG=madvdontneed=1 on Linux; the performance degredation is even smaller when MADV_FREE may be used, but the impact on RSS is much harder to measure. Applications that generally maintain a steady heap size for the most part show no change in application performance. These benchmarks are taken from an experimental benchmarking suite representing a variety of open-source Go packages, the raw results may be found here: https://perf.golang.org/search?q=upload:20190509.1 For #30333. Change-Id: I618a48534d2d6ce5f656bb66825e3c383ab1ffba Reviewed-on: https://go-review.googlesource.com/c/go/+/175797 Run-TryBot: Michael Knyszek <mknyszek@google.com> Reviewed-by: Austin Clements <austin@google.com>
-
Michael Anthony Knyszek authored
This change adds a background scavenging goroutine whose pacing is determined when the heap goal changes. The scavenger is paced to use at most 1% of the mutator's time for most systems. Furthermore, the scavenger's pacing is computed based on the estimated number of scavengable huge pages to take advantage of optimizations provided by the OS. The purpose of this scavenger is to deal with a shrinking heap: if the heap goal is falling over time, the scavenger should kick in and start returning free pages from the heap to the OS. Also, now that we have a pacing system, the credit system used by scavengeLocked has become redundant. Replace it with a mechanism which only scavenges on the allocation path if it makes sense to do so with respect to the new pacing system. Fixes #30333. Change-Id: I6203f8dc84affb26c3ab04528889dd9663530edc Reviewed-on: https://go-review.googlesource.com/c/go/+/142960 Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Michael Anthony Knyszek authored
This change removes the periodic scavenger which goes over every span in the heap and scavenges it if it hasn't been used for 5 minutes. It should no longer be necessary if we have background scavenging (follow-up). For #30333. Change-Id: Ic3a1a4e85409dc25719ba4593a3b60273a4c71e0 Reviewed-on: https://go-review.googlesource.com/c/go/+/143157 Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
Fixes build - I did not understand that vetall was effectively pinned to a vet version by cmd/go.mod. Change-Id: I56bfd8f62eadacc97cad0ed48e41a178bbc18b8f Reviewed-on: https://go-review.googlesource.com/c/go/+/176179 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Than McIntosh authored
When targeting iOS, change the format (DWARF "form") of the call line attribute for inlined subroutine DIEs, to work around an apparent bug in /usr/bin/symbols on Darwin. [Just for posterity: there is nothing wrong with using DW_FORM_udata for the call_line attribute form; this is perfectly legal DWARF (and is in fact recommended by the standard relative to data4, which is less descriptive and often takes more space). The form switch is there just to make the Apple tools happy.] Updates #31459. Change-Id: Iaf362788a8c6684eea4cde8956c0661b694cecc1 Reviewed-on: https://go-review.googlesource.com/c/go/+/174538 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
-
Russ Cox authored
The vetall builder runs vet straight out of golang.org/x/tools, so submiting CL 176097 in that repo will break the builder by making all these whitelist entries stale. Submiting this CL will fix it, by removing them. The addition of the gcWriteBarrier declaration in runtime/stubs.go is necessary because the diagnostic is no longer emitted on arm, so it must be removed from all.txt. Adding it to runtime is better than adding it to every-other-goarch.txt. For #31916. Change-Id: I432f6049cd3ee5a467add5066c440be8616d9d54 Reviewed-on: https://go-review.googlesource.com/c/go/+/176177 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
David Chase authored
This seems to deflake the test, and also allows testing on macOS. Fixes #31786. Change-Id: I10bfba46dd4b8e64cb09fdd4dd9d175c1ce1f022 Reviewed-on: https://go-review.googlesource.com/c/go/+/176058 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Than McIntosh authored
In CL 173938, the linker's object file reader was switched over to selectively create strings backed with read-only mmap'd memory. In the process a call to r.rd.Offset() was added to readSymName(), which greatly increased the number of system calls (Offset does a seek system call). This patch changes the object file reader so that all reads are done directly from the mmap'd data if it is present, and adds logic to keep track of the offset within the rodata consumed so far. Doing this gets rid of the calls to r.rd.Offset() and the corresponding seek system calls. Also as part of this change, hoist the calls to objabi.PathToPrefix up into the initial setup code for object reading, and store the result in the reader (since objabi.PathToPrefix was also coming up as hot in the profile). Numbers for this change from compilebench: benchmark old ns/op new ns/op delta BenchmarkTemplate 172053975 170357597 -0.99% BenchmarkUnicode 64564850 64333653 -0.36% BenchmarkGoTypes 627931042 628043673 +0.02% BenchmarkCompiler 2982468893 2924575043 -1.94% BenchmarkSSA 9701681721 9799342557 +1.01% BenchmarkFlate 106847240 107509414 +0.62% BenchmarkGoParser 132082319 130734905 -1.02% BenchmarkReflect 386810586 383036621 -0.98% BenchmarkTar 154360072 152670594 -1.09% BenchmarkXML 217725693 216858727 -0.40% BenchmarkLinkCompiler 908813802 734363234 -19.20% BenchmarkStdCmd 32378532486 31222542974 -3.57% Fixes #31898. Change-Id: Ibf253a52ce9213325f42b1c2b20d0410f5c88c3b Reviewed-on: https://go-review.googlesource.com/c/go/+/176039Reviewed-by: Cherry Zhang <cherryyz@google.com>
-
Elias Naur authored
Fixes #31917 Change-Id: I794e457b2245d355e2df5077078c67aa09e00ff9 Reviewed-on: https://go-review.googlesource.com/c/go/+/175920 Run-TryBot: Elias Naur <mail@eliasnaur.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Russ Cox authored
f+0(SB) is a non-standard but acceptable alias for f(SB). Fixes #30968. Change-Id: I499ccee4d3ff3ab4e47f75d99407aace858e59aa Reviewed-on: https://go-review.googlesource.com/c/go/+/174537Reviewed-by: Austin Clements <austin@google.com>
-