Age | Commit message (Collapse) | Author | Files | Lines |
|
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
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/504798
|
|
In CL 384695 I simplified the code that built lists of benchmarks,
examples, and fuzz tests, and managed to break it. This CL corrects
the code to once again make the benchmarks available, and to run
the examples with output and the fuzz targets.
Doing this revealed a test failure in internal/fuzz on 32-bit x86:
a signalling NaN is turned into a quiet NaN on the 387 floating-point
stack that GCC uses by default. This CL skips the test.
Fixes golang/go#60826
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/503798
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/393377
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/388635
|
|
Patches from Svante Signell for PR go/104290.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/386797
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/386594
|
|
gotools/
* Makefile.am (go_cmd_cgo_files): Add ast_go118.go
(check-go-tool): Copy golang.org/x/tools directories.
* Makefile.in: Regenerate.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/384695
|
|
The Go 1.18 standard library uses an internal/abi package with two
functions that are implemented in the compiler. This patch implements
them in the gofrontend, to support the upcoming update to 1.18.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/383514
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/350414
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/342189
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/341629
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/293793
|
|
Directly set getsystemcfg as //extern in internal/cpu instead of
trying to use the runtime as in Go toolchain.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/287932
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/287493
|
|
Some files were missing from the libgo copy of internal/cpu, because they
used to only declare CacheLinePadSize which libgo gets from goarch.sh.
Now they also declare doinit, so copy them over. Adjust cpu_other.go.
Fix the amd64p32 build by adding a build constraint to cpu_no_name.go.
Fixes PR go/98493
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/281472
|
|
Patch from Andreas Schwab.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/281000
|
|
Add support (mostly dummy support) for GOARCH values supported by
gofrontend but not gc. Fix PPC handling.
Fixes https://gcc.gnu.org/PR98493
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/280932
|
|
This does not yet include support for the //go:embed directive added
in this release.
* Makefile.am (check-runtime): Don't create check-runtime-dir.
(mostlyclean-local): Don't remove check-runtime-dir.
(check-go-tool, check-vet): Copy in go.mod and modules.txt.
(check-cgo-test, check-carchive-test): Add go.mod file.
* Makefile.in: Regenerate.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/280172
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/276153
|
|
For libgo the definition comes from the generated file cpugen.go.
Fixes PR go/98041
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273866
|
|
Overhaul the mangling scheme to avoid ambiguities if the package path
contains a dot. Instead of using dot both to separate components and
to mangle characters, use dot only to separate components and use
underscore to mangle characters.
For golang/go#41862
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/271726
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/265717
|
|
On AIX, duplication of type descriptors can occur if one is
declared in the libgo and one in the Go program being compiled.
The AIX linker isn't able to merge them together as Linux one does.
One solution is to always load libgo first but that needs a huge mechanism in
gcc core. Thus, this patch ensures that the duplication isn't visible
for the end user.
In reflect and internal/reflectlite, the comparison of rtypes is made on their
name and not only on their addresses.
In reflect, toType() function is using a canonicalization map to force rtypes
having the same rtype.String() to return the same Type. This can't be made in
internal/reflectlite as it needs sync package. But, for now, it doesn't matter
as internal/reflectlite is not widely used.
Fixes golang/go#39276
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/260158
|
|
Add support for the 32-bit RISC-V (RV32) ISA matching the 64-bit RISC-V
(RV64) port except for async preemption added as a stub only.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/251179
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/256618
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/235158
|
|
It was accidentally lost in the 1.15rc1 merge.
Fixes PR go/96567
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/247843
|
|
Per Andreas Schwab.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/246264
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/246363
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245157
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/237899
|
|
Update to edea4a79e8d7dea2456b688f492c8af33d381dc2 which is likely to
be approximately the 1.14.2 release.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/227377
|
|
Patch from Svante Signell.
Fixes GCC PR go/93900
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/220592
|
|
Patch from Svante Signell.
Fixes GCC PR go/93900
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/220589
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/218017
|
|
In libgo CacheLinePadSize is defined by the generated file cpugen.go.
Keep cpu_riscv64.go around, even though it is now empty, so that
we will pick up changes to it in future merges.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216077
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215342
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
|
|
Right now we generate hash functions for all types, just in case they
are used as map keys. That's a lot of wasted effort and binary size
for types which will never be used as a map key. Instead, generate
hash functions only for types that we know are map keys.
Just doing that is a bit too simple, since maps with an interface type
as a key might have to hash any concrete key type that implements that
interface. So for that case, implement hashing of such types at
runtime (instead of with generated code). It will be slower, but only
for maps with interface types as keys, and maybe only a bit slower as
the aeshash time probably dominates the dispatch time.
Reorg where we keep the equals and hash functions. Move the hash function
from the key type to the map type, saving a field in every non-map type.
That leaves only one function in the alg structure, so get rid of that and
just keep the equal function in the type descriptor itself.
While we're here, reorganize the rtype struct to more closely match
the gc version.
This is the gofrontend version of https://golang.org/cl/191198.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212843
From-SVN: r279848
|
|
PR go/93020
libgo: Hurd portability patches
By Svante Signell.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/212409
From-SVN: r279724
|
|
Patch from Andreas Krebbel.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201037
From-SVN: r276962
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194698
From-SVN: r275691
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497
From-SVN: r275473
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/170706
From-SVN: r270214
|
|
Since aix/ppc64 has been added to GC toolchain, a mix between new and
old files were created in gcc toolchain.
This commit corrects this merge for aix/ppc64 and aix/ppc.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/167658
From-SVN: r269797
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/167749
From-SVN: r269780
|
|
PR go/89447
syscall, internal/syscall: adjust use of largefile functions
Consistently call __go_openat for openat. Use fstatat64, creat64,
sendfile64, and getdents64 where needed.
Based on patch by Rainer Orth.
Fixes https://gcc.gnu.org/PR89447
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166420
From-SVN: r269521
|
|
PR go/89407
internal/cpu: use #ifdef __s390x__ in C code
Patch by Jakub Jelinek.
Fixes https://gcc.gnu.org/PR89407
Reviewed-on: https://go-review.googlesource.com/c/163297
From-SVN: r269063
|
|
PR go/89169
internal/cpu: do not require POWER8
Although the gc toolchain requires POWER8, the gccgo toolchain does not.
Fixes https://gcc.gnu.org/PR89169
Reviewed-on: https://go-review.googlesource.com/c/162979
From-SVN: r269019
|
|
PR go/89123
internal/cpu, runtime: add S/390 CPU capability support
Patch by Robin Dapp.
Updates https://gcc.gnu.org/PR89123
Reviewed-on: https://go-review.googlesource.com/c/162887
From-SVN: r268941
|