6265ed7452
Background: when compiling a function, it's possible that a local variable will be optimized away, which could potentially degrade the debugging experience if the compiler fails to emit DWARF information for the variable's type. To mitigate this situation, the compiler emits R_USETYPE relocations for the function's auto/param variables as a signal to the linker to generate DWARF for the types in question, even if the type is not specifically attached to a DWARF param or var. This patch change the logic in the compiler to avoid emitting a R_USETYPE relocation if the type in question is already referenced by a concrete DWARF param or auto record. This cuts down on the amount of work the linker has to do, also makes object files a bit smaller on average (about 1% for the runtime package). Change-Id: I4d24da458d0658edf90c5dca0bf21d5ddc3961d8 Reviewed-on: https://go-review.googlesource.com/c/go/+/234837 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com> Reviewed-by: Jeremy Faller <jeremy@golang.org> Run-TryBot: Cherry Zhang <cherryyz@google.com> |
||
---|---|---|
.github | ||
api | ||
doc | ||
lib/time | ||
misc | ||
src | ||
test | ||
.gitattributes | ||
.gitignore | ||
AUTHORS | ||
CONTRIBUTING.md | ||
CONTRIBUTORS | ||
favicon.ico | ||
LICENSE | ||
PATENTS | ||
README.md | ||
robots.txt | ||
SECURITY.md |
The Go Programming Language
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Download and Install
Binary Distributions
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.
Install From Source
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.
Contributing
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.