commit | 68a756b6aadc901534cfddddad2b1e73fae9e34f | [log] [tgz] |
---|---|---|
author | Ian Lance Taylor <iant@golang.org> | Wed Jun 21 17:27:39 2023 -0700 |
committer | Ian Lance Taylor <iant@golang.org> | Fri Jun 23 23:15:15 2023 +0000 |
tree | f858ad8cb5a071b14c7004ecad4c54d5524b21fb | |
parent | 195060166e6045408a2cb95e6aa88c6f0b98f20b [diff] |
compiler, libgo: support bootstrapping gc compiler In the Go 1.21 release the package internal/profile imports internal/lazyregexp. That works when bootstrapping with Go 1.17, because that compiler has internal/lazyregep and permits importing it. We also have internal/lazyregexp in libgo, but since it is not installed it is not available for importing. This CL adds internal/lazyregexp to the list of internal packages that are installed for bootstrapping. The Go 1.21, and earlier, releases have a couple of functions in the internal/abi package that are always fully intrinsified. The gofrontend recognizes and intrinsifies those functions as well. However, the gofrontend was also building function descriptors for references to the functions without calling them, which failed because there was nothing to refer to. That is OK for the gc compiler, which guarantees that the functions are only called, not referenced. This CL arranges to not generate function descriptors for these functions. For golang/go#60913 Change-Id: I6a071e378205e5e90cfaebad23aca33dcfcef074 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/504798 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Than McIntosh <thanm@google.com>
Ian Lance Taylor Last update 15 June 2014
This is a compiler frontend for the Go programming language. The frontend was originally developed at Google, and was released in November 2009. It was originally written by Ian Lance Taylor.
It was originally written for GCC. As of this writing it only supports GCC, but the GCC support has been separated from the rest of the frontend, so supporting another compiler is feasible.
The go subdirectory holds the frontend source code. This is mirrored to the gcc/go subdirectory in the GCC repository.
The libgo subdirectory holds the library source code. This is a copy of the main Go library with various changes appropriate for this compiler. The main Go library is hosted at http://go.googlesource.com/go, in the src directory. The libgo subdirectory is mirrored to the libgo subdirectory in the gcc repository.
To contribute patches to the files in this directory, please see Contributing to the gccgo frontend.
The master copy of these files is hosted in Gerrit (there is a mirror at Github). Changes to these files require signing a Google contributor license agreement. If you are the copyright holder, you will need to agree to the Google Individual Contributor License Agreement. This agreement can be completed online.
If your organization is the copyright holder, the organization will need to agree to the Google Software Grant and Corporate Contributor License Agreement.
If the copyright holder for your code has already completed the agreement in connection with another Google open source project, it does not need to be completed again.
The authors of these files may be found in the AUTHORS and CONTRIBUTORS files.