Age | Commit message (Collapse) | Author | Files | Lines |
|
AIX linker is not able to merge identical type descriptors in a single
symbol if there are coming from different object or shared object files.
This results into several pointers referencing the same type
descriptors.
Thus, eqtype is needed to ensure that these different symbols will be
considered as the same type descriptor.
Fixes golang/go#39276
gcc/go/ChangeLog:
* go-c.h (struct go_create_gogo_args): Add need_eqtype field.
* go-lang.c (go_langhook_init): Set need_eqtype.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/235697
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/247517
|
|
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
|
|
This ports https://golang.org/cl/227163 to the Go frontend.
This is a step toward moving up to the go1.15rc1 release.
Original CL description:
cmd/compile,runtime: pass only ptr and len to some runtime calls
Some runtime calls accept a slice, but only use ptr and len.
This change modifies most such routines to accept only ptr and len.
After this change, the only runtime calls that accept an unnecessary
cap arg are concatstrings and slicerunetostring.
Neither is particularly common, and both are complicated to modify.
Negligible compiler performance impact. Shrinks binaries a little.
There are only a few regressions; the one I investigated was
due to register allocation fluctuation.
Passes 'go test -race std cmd', modulo golang/go#38265 and golang/go#38266.
Wow, does that take a long time to run.
file before after Δ %
compile 19655024 19655152 +128 +0.001%
cover 5244840 5236648 -8192 -0.156%
dist 3662376 3658280 -4096 -0.112%
link 6680056 6675960 -4096 -0.061%
pprof 14789844 14777556 -12288 -0.083%
test2json 2824744 2820648 -4096 -0.145%
trace 11647876 11639684 -8192 -0.070%
vet 8260472 8256376 -4096 -0.050%
total 115163736 115118808 -44928 -0.039%
For golang/go#36890
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/245099
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/243317
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/241999
|
|
CL 237897 added additional GOARCHes supported by gccgo to x/sys/cpu.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/238038
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/237899
|
|
The arenaBaseOffset modifications was aimed only for aix/ppc64.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/237038
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/234597
|
|
The expected result of TestCallersNilPointerPanic has changed in
GoLLVM. This CL makes some elements of the expected result optional
so that this test passes in both gccgo and GoLLVM.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/230138
|
|
This is a partial backport of https://golang.org/cl/233318.
It's only a partial backport because part of the change was
already applied to libgo in CL 193497 as part of the update
to the Go 1.13beta1 release.
Fixes PR go/95061
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/233359
|
|
si_code in siginfo_t is a macro on NetBSD, not a member of the
struct itself, so add a C trampoline for receiving its value.
Also replace references to mos.waitsemacount with the replacement and
add some helpers from os_netbsd.go in the GC repository.
Update golang/go#38538.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/228918
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/227551
|
|
Update to edea4a79e8d7dea2456b688f492c8af33d381dc2 which is likely to
be approximately the 1.14.2 release.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/227377
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/221158
|
|
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
|
|
This will need to be done in the gc version too, probably more cleverly.
This version will ensure that the next GCC release works correctly
when using the GCC version of the go tool.
Updates golang/go#37272
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/219817
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/218017
|
|
Otherwise we can easily run out of stack space for threads.
The user can still override by setting GOMAXPROCS.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/219278
|
|
Make syscall_linux_riscv64.go, new in the 1.14beta1 release, look like
the other syscall_linux_GOARCH.go files.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/217577
|
|
Patch by Svante Signell.
Updates PR go/93468
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216959
|
|
Patch from Svante Signell.
Updates PR go/93468
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/216958
|
|
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
|
|
Fixes a build breakage introduced in the 1.14beta1 upgrade.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215857
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/215342
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
|
|
Previously if the only names defined by _test packages were examples,
the gotest script would emit an incorrect _testmain.go file.
I worked around that by marking the example_test.go files +build ignored.
This CL changes the gotest script to handle this case correctly,
and removes the now-unnecessary build tags.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214039
From-SVN: r280085
|
|
Use specific panic functions instead, which are mostly already in the
runtime package.
Also correct "defer nil" to panic when we execute the defer, rather
than throw when we queue it.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/213642
From-SVN: r279979
|
|
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
|
|
PR go/92861
runtime: don't define CLOCK_REALTIME in os_hurd.go
It's already defined in sysinfo.go.
Patch by Samuel Thibault.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210538
From-SVN: r279136
|
|
PR go/92861
runtime: use absolute time for sem_timedwait
Patch by Samuel Thibault.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210457
From-SVN: r279106
|
|
STMicroelectronics)
PR go/29842
runtime: update HURD support for mOS now being embedded
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210285
From-SVN: r279062
|
|
Updates cgo's gccgoPkgpathToSymbolNew() to bring it into
conformance with the way that gccgo now handles package
paths with embedded dots (see CL 200838). See also
https://gcc.gnu.org/PR61880, a related bug. This CL is a
copy of CL 207957 in the main Go repo.
Updates golang/go#35623.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/207977
From-SVN: r278470
|
|
Patch from Andreas Krebbel.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201038
From-SVN: r276964
|
|
Patch from Andreas Krebbel.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201037
From-SVN: r276962
|
|
This only matters on systems that pass a struct with a single pointer
field differently than passing a single pointer. I noticed it on
32-bit PPC, where the reflect package TestDirectIfaceMethod failed.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/195878
From-SVN: r275814
|
|
PR go/91781
reflect: promote integer closure return to full word
The libffi library expects an integer return type to be promoted to a
full word. Implement that when returning from a closure written in Go.
This only matters on big-endian systems when returning an integer smaller
than the pointer size, which is why we didn't notice it until now.
Fixes https://gcc.gnu.org/PR91781.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/195858
From-SVN: r275813
|
|
The function was always intended to be internal-only, but was exported
so that C code could call it. Now that have go:linkname for that, use it.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/195857
From-SVN: r275809
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194698
From-SVN: r275691
|
|
Should fix the build on riscv64 and other systems.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194641
From-SVN: r275650
|
|
Restore Solaris compatibility fixes lost when internal/x/net/lif moved
to golang.org/x/net/lif. Also fix the Makefile for x/net/lif and
x/net/route.
Change x/sys/cpu to get the cache line size from goarch.sh as the
gofrontend version of internal/cpu does.
Partially based on work by Rainer Orth.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194438
From-SVN: r275611
|
|
Backport of https://golang.org/cl/194440. Original description:
If an embedded field refers to a type via a pointer, the parser needs
to know the name of the embedded field. It is possible that the
pointer type is not yet resolved. This CL fixes the parser to handle
that case by setting the pointer element type to the unresolved named
type while the pointer is being resolved.
Updates golang/go#34182
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194562
From-SVN: r275606
|
|
Also fix the key used to store the ID.
This is a significant speedup in cmd/go run time.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194257
From-SVN: r275559
|
|
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497
From-SVN: r275473
|
|
The gc compiler has started permitting go:linkname comments with a
single argument to mean that a function should be externally visible
outside the package. Implement this in the Go frontend.
Change the libgo runtime package to use it, rather than repeating the
name just to export a function.
Remove a couple of unnecessary go:linkname comments on declarations.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/192197
From-SVN: r275239
|