aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile
AgeCommit message (Collapse)Author
2025-07-14[dev.simd] cmd/compile: mark SIMD types non-fatJunyang Shao
This CL fixes the merge locals error. The culprit is that liveness analysis wrongly mark SIMD structs fat, hence making `StoreReg` of SIMD vectors not a varkill effect, making the liveness range of SIMD vectors not closed correctly, further making mergelocals merged 2 concurrently-live SIMD vectors. Is looks like mergelocals will treat the live range as one instruction if it's not closed: [st, st+1). Should we make it [st, +inf) instead? So that we won't have similar errors in the future. Also, I feel we really need to examine every "case types.TSTRUCT" or "if t.Kind() == types.TSTRUCT" in the codebase correctly for SIMD types... Change-Id: I2f4f4f36a890bd317d582cfa73a8f6a789382d91 Reviewed-on: https://go-review.googlesource.com/c/go/+/687775 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-07-11[dev.simd] cmd/compile, simd: adjust Shift.* operationsJunyang Shao
This CL does: 1. Removes ShiftRightSignExtended, default signed vectors to shift arithmetic, and unsigned to shift logical. 2. Add the missing Shifts which were left out by YAML error in the generator. This CL is generated by CL 687595. Change-Id: I663115498adb91c82e89a8476e6748794e997cfa Reviewed-on: https://go-review.googlesource.com/c/go/+/687596 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-07-11[dev.simd] simd: fix documentationsJunyang Shao
This CL is generated by CL 687415. Change-Id: I2d778717013af613c442116658f42a4a4cc5d734 Reviewed-on: https://go-review.googlesource.com/c/go/+/687376 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-07-11[dev.simd] cmd/compile: exclude simd vars from merge localJunyang Shao
It looks like mergelocals pass's liveness analysis does not handle simd variables well. The added test forces two vectors to spill in a way that does not work with mergelocals: if the added check is removed, then `v` and `m` will be marked merged and spilled to the same location, failing the test. Change-Id: Ife4e4e939565d817fc24f7180cb791a5084dd191 Reviewed-on: https://go-review.googlesource.com/c/go/+/687375 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-07-11[dev.simd] cmd/compile: add VZEROUPPER and VZEROALL instJunyang Shao
Change-Id: I41d60561fefdfa676e8b22648871ff1004711ac9 Reviewed-on: https://go-review.googlesource.com/c/go/+/686840 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-07-11[dev.simd] all: merge master (88cf0c5) into dev.simdCherry Mui
Merge List: + 2025-07-11 88cf0c5d55 cmd/link: do size fixups after symbol references are loaded + 2025-07-10 7a38975a48 os: trivial comment fix + 2025-07-10 aa5de9ebb5 synctest: fix comments for time.Now() in synctests + 2025-07-10 63ec70d4e1 crypto/cipher: Fix comment punctuation + 2025-07-09 8131635e5a runtime: run TestSignalDuringExec in its own process group + 2025-07-09 67c1704444 crypto/tls: empty server_name conf. ext. from server + 2025-07-08 54c9d77630 cmd/go: disable support for multiple vcs in one module + 2025-07-08 fca43a8436 internal: make struct comment match struct name + 2025-07-08 bb917bb030 cmd/compile: document that nosplit directive is unsafe + 2025-07-08 a5bda585d5 cmd/compile: run fmt on ssa + 2025-07-07 86b5ba7310 internal/trace: only test for sync preemption if async preemption is off + 2025-07-07 ef46e1b164 cmd/internal/doc: fix GOROOT skew and path joining bugs + 2025-07-07 75b43f9a97 runtime: make traceStack testable and add a benchmark + 2025-07-07 20978f46fd crypto/rsa: remove another forgotten note to future self + 2025-07-07 33fb4819f5 cmd/compile/internal/ssa: skip EndSequence entries in TestStmtLines + 2025-07-07 a995269a93 sort: clarify Less doc + 2025-07-03 6c3b5a2798 runtime: correct vdsoSP on S390X + 2025-07-03 dd687c3860 hash: document that Clone may only return ErrUnsupported or a nil error + 2025-07-02 b325151453 cmd/cgo/internal/testsanitizers: skip asan tests when FIPS140 mode is on + 2025-07-02 15d9fe43d6 testing/synctest: explicitly state Run will be removed in Go 1.26 + 2025-07-01 de646d94f7 cmd/go/internal/modindex: apply changes in CL 502615 to modindex package + 2025-07-01 2f653a5a9e crypto/tls: ensure the ECDSA curve matches the signature algorithm + 2025-07-01 6e95fd96cc crypto/ecdsa: fix crypto/x509 godoc links + 2025-07-01 7755a05209 Revert "crypto/internal/fips140/subtle: add assembly implementation of xorBytes for arm" + 2025-07-01 d168ad18e1 slices: update TestIssue68488 to avoid false positives + 2025-07-01 27ad1f5013 internal/abi: fix comment on NonEmptyInterface + 2025-06-30 86fca3dcb6 encoding/json/jsontext: use bytes.Buffer.AvailableBuffer + 2025-06-30 6bd9944c9a encoding/json/v2: avoid escaping jsonopts.Struct + 2025-06-30 e46d586edd cmd/compile/internal/escape: add debug hash for literal allocation optimizations + 2025-06-30 479b51ee1f cmd/compile/internal/escape: stop disabling literal allocation optimizations when coverage is enabled + 2025-06-30 8002d283e8 crypto/tls: update bogo version + 2025-06-30 fdd7713fe5 internal/goexperiment: fix godoc formatting Change-Id: I074e6c75778890930975925c016004aabca2b9d1
2025-07-10[dev.simd] cmd/compile: fix maskreg/simdreg chaosJunyang Shao
This CL fixes some errors left by CL 685895. Change-Id: I35ee36287fc964a82fd3c88764b688bd4491be65 Reviewed-on: https://go-review.googlesource.com/c/go/+/687095 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-07-09[dev.simd] cmd/compile: remove X15 from register maskDavid Chase
mistakes were made. X15 is reserved zero and cannot be allocated normally. Change-Id: I70b24aa07dc31f9b40e306a9aae1d53dfea794f9 Reviewed-on: https://go-review.googlesource.com/c/go/+/686996 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>
2025-07-09[dev.simd] cmd/compile: output of simd generator, more ... rewrite rulesDavid Chase
Generated by simdgen CL 686378 Change-Id: I876ab91085c266ced59fc82ea12be709dc7eb721 Reviewed-on: https://go-review.googlesource.com/c/go/+/686495 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-07-09[dev.simd] cmd/compile, simd: Int64x2 Greater and Uint* EqualJunyang Shao
This CL is generated by CL 686817. Change-Id: I19b8e468594514b2b1c99f8ad766f78b5e194c80 Reviewed-on: https://go-review.googlesource.com/c/go/+/686876 TryBot-Bypass: David Chase <drchase@google.com> Reviewed-by: David Chase <drchase@google.com>
2025-07-09[dev.simd] cmd/compile: use upper registers for AVX512 simd opsJunyang Shao
This CL is generated by CL 686775. Change-Id: I10606cfdd4be015c8d251ba4275e1191d5bf0944 Reviewed-on: https://go-review.googlesource.com/c/go/+/686695 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-07-09[dev.simd] cmd/compile: change register mask names for simd opsJunyang Shao
This CL contains codes generated by CL 686556. Change-Id: I4d7287476b478efdc186a64c12de33528c7fb0af Reviewed-on: https://go-review.googlesource.com/c/go/+/686476 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-07-09[dev.simd] cmd/compile, simd: rename Masked$OP to $(OP)Masked.Junyang Shao
This CL is generated by CL 686575. Change-Id: I1483189a1ae9bed51446fd69daab3f7b128549ae Reviewed-on: https://go-review.googlesource.com/c/go/+/686516 Reviewed-by: David Chase <drchase@google.com> TryBot-Bypass: David Chase <drchase@google.com>
2025-07-08[dev.simd] cmd/compile, simd: remove FP bitwise logic operations.Junyang Shao
This CL is generated by CL 686555. Change-Id: I0efb86a919692cd97c1c5b6365d77361a30bf7cf Reviewed-on: https://go-review.googlesource.com/c/go/+/686496 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-07-08[dev.simd] cmd/compile: make compares between NaNs all false.Junyang Shao
This CL updates the predicate immediate value of Equal, GreaterEqual, Greater. This CL is generated by Cl 686215. Change-Id: I77fc411f40f5c790a1be7f3d5ffd11f12df50ec7 Reviewed-on: https://go-review.googlesource.com/c/go/+/686235 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-07-08cmd/compile: document that nosplit directive is unsafeIan Lance Taylor
For #74478 Change-Id: I902e9a92cdacb5ad6dafa9896640f8196ba1d56a Reviewed-on: https://go-review.googlesource.com/c/go/+/686115 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org>
2025-07-08cmd/compile: run fmt on ssaJorropo
prove.go used to make my editor and precomit checks very unhappy. Change-Id: I25f7ffa2191480bc1b4f91fa91ccf3e4768045fa Reviewed-on: https://go-review.googlesource.com/c/go/+/685818 Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-07-08[dev.simd] cmd/compile: minor tweak for race detectorDavid Chase
This makes the front-end a little bit less temp-happy when instrumenting, which repairs the "is it a constant?" test in the simd intrinsic conversion which is otherwise broken by race detection. Also, this will perhaps be better code. Change-Id: I84b7a45b7bff62bb2c9f9662466b50858d288645 Reviewed-on: https://go-review.googlesource.com/c/go/+/685637 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-07-07[dev.simd] cmd/compile: add EXTRACT[IF]128 instructionsDavid Chase
This is generated by simdgen CL 684080 and should be submitted after it. Also includes tests. Change-Id: I1d680911134d8fb92f4deccae4ec373f3ed9f752 Reviewed-on: https://go-review.googlesource.com/c/go/+/684115 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-07-07[dev.simd] cmd/compile: add INSERT[IF]128 instructionsDavid Chase
This CL is created by simdgen CL 684055 and should be submitted after it. Also includes a test. Change-Id: I2ad7ae51d11cfc19745e866150e2eaf010d4ea49 Reviewed-on: https://go-review.googlesource.com/c/go/+/684077 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-07-07[dev.simd] cmd/compile: make regalloc simd aware on copyJunyang Shao
When making a temporary copy, regalloc should be aware of the SIMD-ness of the type; otherwise it might generate invalid moves. Change-Id: I722c3a0111d0990af32d84c6aaa151f1ac8c1f00 Reviewed-on: https://go-review.googlesource.com/c/go/+/685895 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-07-07cmd/compile/internal/ssa: skip EndSequence entries in TestStmtLinesqmuntal
The TestStmtLines test has been accessing a nil pointer when it tries to look up LineEntry.File.Name on a line entry with EndSequence set to true. The doc for EndSequence specifies that if EndSequence is set, only it and the Address field are meaningful. Skip the entries with EndSequence set when building the set of files. I've reproduced this issue locally. Probably also fixes #49372, but will leave that for a follow-up CL. Fixes #74475 Updates #49372 Change-Id: Ic0664f7652b52a0a20239d13fe16454622740821 Reviewed-on: https://go-review.googlesource.com/c/go/+/685835 Reviewed-by: Than McIntosh <thanm@golang.org> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Bypass: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Quim Muntal <quimmuntal@gmail.com>
2025-07-07[dev.simd] cmd/compile: output of simdgen with invariant type orderDavid Chase
The old order was somewhat input-dependent, and sometimes produced spurious changes. This is the last spurious change, "once and for all!!!" Generated by simdgen CL 685595 Change-Id: Ic66d0263f3dd9f1ef9502c2deeeb8300ca3bac75 Reviewed-on: https://go-review.googlesource.com/c/go/+/685615 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>
2025-07-04[dev.simd] cmd/compile: fix the "always panic" code to actually panicDavid Chase
without this change, the intrinsics of non-constant immediates just substitute a zero, which is wrong. Change-Id: I2c39ebedcfb0d0d6c072f4434f393027c6f3f033 Reviewed-on: https://go-review.googlesource.com/c/go/+/685575 Reviewed-by: Junyang Shao <shaojunyang@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-06-30cmd/compile/internal/escape: add debug hash for literal allocation optimizationsthepudds
Several CLs earlier in this stack added optimizations to reduce user allocations by recognizing and taking advantage of literals, including CL 649555, CL 649079, and CL 649035. This CL adds debug hashing of those changes, which enables use of the bisect tool, such as 'bisect -compile=literalalloc go test -run=Foo'. This also allows these optimizations to be manually disabled via '-gcflags=all=-d=literalallochash=n'. Updates #71359 Change-Id: I854f7742a6efa5b17d914932d61a32b2297f0c88 Reviewed-on: https://go-review.googlesource.com/c/go/+/675415 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-30cmd/compile/internal/escape: stop disabling literal allocation optimizations ↵thepudds
when coverage is enabled CL 649079 and CL 649035 updated escape analysis to rewrite certain expressions in OMAKE and OCONVIFACE nodes as optimizations to reduce user allocations. Part of the change in CL 649079 disabled those optimzations when coverage instrumentation was enabled under an incorrect possible theory of how those optimizations might be "expected" to change coverage results -- in particular, the cover_build_pkg_select.txt testscript failed with different coverage results. I now realize that the proper explanation is that my fix in CL 684116 was needed. Now that CL 684116 is merged, we should no longer disable these optimizations when coverage is enabled, which is what this CL does. This has not been reported as a problem to my knowledge, but without this CL, one could imagine for example a test using testing.AllocsPerRun might start failing when coverage was enabled if the result relied on these optimizations. As expected, if we place this CL just before the necessary fix in CL 684116, the cover_build_pkg_select.txt testscript fails with a changed coverage result. If we place this CL just after CL 684116, the test passes, also as expected. Updates #71359 Change-Id: Ib5ff00c267acd85dd423c238d177e91a4d881f9e Reviewed-on: https://go-review.googlesource.com/c/go/+/684777 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-30[dev.simd] cmd/compile, simd: cleanup operations and documentationsJunyang Shao
This CL is generated by CL 685035. Change-Id: Ic3a043e83e62d0be77de97ef63a20d34bf1e2dc0 Reviewed-on: https://go-review.googlesource.com/c/go/+/685055 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-06-30[dev.simd] all: merge master (740857f) into dev.simdCherry Mui
Merge List: + 2025-06-30 740857f529 runtime: stash allpSnapshot on the M + 2025-06-30 9ae38be302 sync: disassociate WaitGroups from bubbles on Wait + 2025-06-30 4731832342 crypto/hmac: wrap ErrUnsupported returned by Clone + 2025-06-30 03ad694dcb runtime: update skips for TestGdbBacktrace + 2025-06-30 9d1cd0b881 iter: add missing type parameter in doc + 2025-06-29 acb914f2c2 cmd/doc: fix -http on Windows + 2025-06-27 b51f1cdb87 runtime: remove arbitrary 5-second timeout in TestNeedmDeadlock + 2025-06-27 f1e6ae2f6f reflect: fix TypeAssert on nil interface values + 2025-06-27 e81c624656 os: use minimal file permissions when opening parent directory in RemoveAll + 2025-06-27 2a22aefa1f encoding/json: add security section to doc + 2025-06-27 742fda9524 runtime: account for missing frame pointer in preamble + 2025-06-27 fdc076ce76 net/http: fix RoundTrip context cancellation for js/wasm + 2025-06-27 d9d2cadd63 encoding/json: fix typo in hotlink for jsontext.PreserveRawStrings + 2025-06-26 0f8ab2db17 cmd/link: permit a larger size BSS reference to a smaller DATA symbol + 2025-06-26 988a20c8c5 cmd/compile/internal/escape: evaluate any side effects when rewriting with literals + 2025-06-25 b5d555991a encoding/json/jsontext: remove Encoder.UnusedBuffer + 2025-06-25 0b4d2eab2f encoding/json/jsontext: rename Encoder.UnusedBuffer as Encoder.AvailableBuffer Change-Id: Iea44ab825bdf087fbe7570df8d2d66d1d3327c31
2025-06-30[dev.simd] cmd/compile: reorder operands for some simd operationsDavid Chase
This adds support for one ad hoc reordering, which requires a new intrinsic-to-ssa helper matching the name that is used in the generator (and this in the generated code). In this case, it is opLen{2,3}Imm8_2I which expects the immediate after the self (0) and first (1) parameters to the method, and before the mask if there is one. I.e., the immediate is arg 2 in the call. The changes to simdintrinsics and stubs are generated by simdgen CL 684019. Change-Id: Ia54aab9825d469a2f3efa6d1fb079242181c0ca6 Reviewed-on: https://go-review.googlesource.com/c/go/+/684776 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-06-30[dev.simd] cmd/compile: undoes reorder transform in prior commit, changes namesDavid Chase
paired with simdgen CL 684655 Change-Id: I819eb601c07b21747d8a1442eb1efbf9fa5aac1d Reviewed-on: https://go-review.googlesource.com/c/go/+/684775 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-26[dev.simd] cmd/compile, simd: add galois field operationsJunyang Shao
This CL is generated by CL 684275. Change-Id: Ie1efd0979af0ef0a56781bf9013071bf4d2c52c5 Reviewed-on: https://go-review.googlesource.com/c/go/+/684175 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-26[dev.simd] cmd/compile, simd: add shift operationsJunyang Shao
This CL is generated by CL 683475. Change-Id: I9e3ac6aff6f711cb26ff85e4c8729d9e2cc38e7d Reviewed-on: https://go-review.googlesource.com/c/go/+/683715 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-06-26[dev.simd] cmd/compile: tweak sort order in generatorDavid Chase
This CL is created by simdgen CL 684056 Change-Id: Ie4240098bbe701531ab82d5200e92857726f1ba7 Reviewed-on: https://go-review.googlesource.com/c/go/+/684076 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-26[dev.simd] cmd/compile: add simd VPEXTRA*David Chase
This CL is generated by simdgen CL 683836 and this CL should be submitted after its generator. Change-Id: I1aa893b185826ad1f9fb60b85c75eda31f70623b Reviewed-on: https://go-review.googlesource.com/c/go/+/683797 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-26cmd/compile/internal/escape: evaluate any side effects when rewriting with ↵thepudds
literals CL 649035 and CL 649079 updated escape analysis to rewrite certain operands in OMAKE and OCONVIFACE nodes from non-constant expressions to basic literals that evaluate to the same value. However, when doing that rewriting, we need to evaluate any side effects prior to replacing the expression, which is what this CL now does. Issue #74379 reported a problem with OCONVIFACE nodes due to CL 649079. CL 649035 has essentially the same issue with OMAKE nodes. To illustrate that, we add a test for the OMAKE case in fixedbugs/issue74379b.go, which fails without this change. To avoid introducing an unnecessary temporary for OMAKE nodes, we also conditionalize the main work of CL 649035 on whether the OMAKE operand is already an OLITERAL. CL 649555 and CL 649078 were related changes that created read-only global storage for composite literals used in an interface conversion. This CL adds a test in fixedbugs/issue74379c.go to illustrate that they do not have the same problem. Updates #71359 Fixes #74379 Change-Id: I6645575ef34f1fe2b0241a22dc205875d66b7ada Reviewed-on: https://go-review.googlesource.com/c/go/+/684116 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Keith Randall <khr@google.com>
2025-06-26[dev.simd] cmd/compile: support simd(imm,fp) returns gpDavid Chase
These changes are required to make gp-returning simd ops work. amd64/ssa.go includes a new code generator helper, gc/main.go initializes intrinsics AFTER the types, ssa/_gen/*AMD64.go add another register shape to the simd ops function. This CL should be submitted after simdgen CL 683858 which generated some of the changes. Change-Id: I0af752ba8882fa131b875ff9c741ef70afbc60d1 Reviewed-on: https://go-review.googlesource.com/c/go/+/683816 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>
2025-06-25[dev.simd] all: merge master (f8ccda2) into dev.simdCherry Mui
Merge List: + 2025-06-25 f8ccda2e05 runtime: make explicit nil check in (*spanInlineMarkBits).init + 2025-06-25 f069a82998 runtime: note custom GOMAXPROCS even if value doesn't change + 2025-06-24 e515ef8bc2 context: fix typo in context_test.go + 2025-06-24 47b941f445 cmd/link: add one more linkname to the blocklist + 2025-06-24 34cf5f6205 go/types: add test for interface method field type + 2025-06-24 6e618cd42a encoding/json: use zstd compressed testdata + 2025-06-24 fcb9850859 net/http: reduce allocs in CrossOriginProtection.Check + 2025-06-24 11f11f2a00 encoding/json/v2: support ISO 8601 durations + 2025-06-24 62deaf4fb8 doc: fix links to runtime Environment Variables + 2025-06-24 2e9bb62bfe encoding/json/v2: reject unquoted dash as a JSON field name + 2025-06-23 ed7815726d encoding/json/v2: report error on time.Duration without explicit format + 2025-06-23 f866958246 cmd/dist: test encoding/json/... with GOEXPERIMENT=jsonv2 + 2025-06-23 f77a0aa6b6 internal/trace: improve gc-stress test + 2025-06-23 4506796a6e encoding/json/jsontext: consistently use JSON terminology + 2025-06-23 456a90aa16 runtime: add missing unlock in sysReserveAlignedSbrk + 2025-06-23 1cf6386b5e Revert "go/types, types2: don't register interface methods in Info.Types map" + 2025-06-20 49cdf0c42e testing, testing/synctest: handle T.Helper in synctest bubbles + 2025-06-20 3bf1eecbd3 runtime: fix struct comment + 2025-06-20 8ed23a2936 crypto/cipher: fix link to crypto/aes + 2025-06-20 ef60769b46 go/doc: add a golden test that reproduces #62640 + 2025-06-18 8552bcf7c2 cmd/go/internal/fips140: ignore GOEXPERIMENT on error + 2025-06-18 4c7567290c runtime: set mspan limit field early and eagerly + 2025-06-18 c6ac736288 runtime: prevent mutual deadlock between GC stopTheWorld and suspendG + 2025-06-17 53af292aed encoding/json/jsontext: fix spelling error + 2025-06-16 d058254689 cmd/dist: always include variant in package names + 2025-06-16 3254c2bb83 internal/reflectlite: fix comment about meaning of flag field + 2025-06-16 816199e421 runtime: don't let readTrace spin on trace.shutdown + 2025-06-16 ea00461b17 internal/trace: make Value follow reflect conventions + 2025-06-13 96a6e147b2 runtime: comment that some linknames are used by runtime/trace + 2025-06-13 644905891f runtime: remove unused unique.runtime_blockUntilEmptyFinalizerQueue + 2025-06-13 683810a368 cmd/link: block new standard library linknames + 2025-06-12 9149876112 all: replace a few user-visible mentions of golang.org and godoc.org + 2025-06-12 934d5f2cf7 internal/trace: end test programs with SIGQUIT + 2025-06-12 5a08865de3 net: remove some BUG entries + 2025-06-11 d166a0b03e encoding/json/jsontext, encoding/json/v2: document experimental nature + 2025-06-11 d4c6effaa7 cmd/compile: add up-to-date test for generated files + 2025-06-10 7fa2c736b3 os: disallow Root.Remove(".") on Plan 9, js, and Windows + 2025-06-10 281cfcfc1b runtime: handle system goroutines later in goroutine profiling + 2025-06-10 4f86f22671 testing/synctest, runtime: avoid panic when using linker-alloc WG from bubble Change-Id: I8bbbf40ce053a80395b08977e21b1f34c67de117
2025-06-25[dev.simd] cmd/compile: glue codes for Shift and RotateJunyang Shao
This CL adds two more intrinsic lowering functions. They can issue an OpCopy to move a scalar value to vector value. This is needed by Shift and Rotate APIs. Change-Id: I8a83197d33207072c4a9221a931e67dddd5cd0bf Reviewed-on: https://go-review.googlesource.com/c/go/+/683476 Auto-Submit: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-24go/types: add test for interface method field typeRob Findley
Add a test that would have detected the regression in #74303: interface method fields should have a recorded type. For #74303 Change-Id: Ide5df51cd71c38809c364bb4f95950163ecefb66 Reviewed-on: https://go-review.googlesource.com/c/go/+/683595 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Alan Donovan <adonovan@google.com> Auto-Submit: Robert Findley <rfindley@google.com>
2025-06-23[dev.simd] cmd/compile: make simd regmask naming more like existing conventionsDavid Chase
Paired with simdgen CL 682937 Change-Id: Ia826f643ece23bf4c7903dffe2fc15e39fbd5577 Reviewed-on: https://go-review.googlesource.com/c/go/+/683115 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-23[dev.simd] simd, cmd/compile: generated code for VPINSR[BWDQ], and testDavid Chase
This is paired with simdgen CL 683055 Change-Id: I91d2c08a97ddd7cf06dd24478d552b962846131c Reviewed-on: https://go-review.googlesource.com/c/go/+/683035 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-23Revert "go/types, types2: don't register interface methods in Info.Types map"Robert Findley
This reverts commit 4ac729283c807cdbe0f6c7041f21606019b722cf. Reason for revert: changes semantics of types.Info.TypeOf; introduces new inconsistency around FieldList types. For #74303 Change-Id: Ib99558c95f1b615fa9a02b028500ed230c8bb185 Reviewed-on: https://go-review.googlesource.com/c/go/+/683297 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Robert Findley <rfindley@google.com> Reviewed-by: Alan Donovan <adonovan@google.com>
2025-06-23[dev.simd] cmd/compile: generate function body for bodyless intrinsicsCherry Mui
For a compiler intrinsic, if it is used in a non-call context, e.g. as a function pointer, currently it requires fallback implementation (e.g. assembly code for atomic operations), otherwise it will result in a build failure. The fallback implementation needs to be maintained and tested, albeit rarely used in practice. Also, for SIMD, we're currently adding a large number of compiler intrinsics without providing fallback implementations (we might in the future). As methods, it is not unlikely that they are used in a non-call context, e.g. referenced from the type descriptor. This CL lets the compiler generate the function body for bodyless intrinsics. The compiler already recognizes a call to the function as an intrinsic and can directly generate code for it. So we just fill in the body with a call to the same function. Change-Id: I2636e3128f28301c9abaf2b48bc962ab56e7d1a9 Reviewed-on: https://go-review.googlesource.com/c/go/+/683096 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-06-20[dev.simd] cmd/compile: add simdFp1gp1fp1Imm8 helper to amd64 code generationDavid Chase
This is for VPINSRB[BWDQ], coming in a later CL. Change-Id: I6b4b99be43512623d4d6e5542221c18f0c5c2eb4 Reviewed-on: https://go-review.googlesource.com/c/go/+/682956 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-20[dev.simd] cmd/compile: don't treat devel compiler as a released compilerCherry Mui
The compiler has a logic to print different messages on internal compiler error depending on whether this is a released version of Go. It hides the panic stack trace if it is a released version. It does this by checking the version and see if it has a "go" prefix. This includes all the released versions. However, for a non- released build, if there is no explicit version set, cmd/dist now sets the toolchain version as go1.X-devel_XXX, which makes it be treated as a released compiler, and causes the stack trace to be hidden. Change the logic to not match a devel compiler as a released compiler. Change-Id: I5d3b2101527212f825b6e4000b36030c4f83870b Reviewed-on: https://go-review.googlesource.com/c/go/+/682975 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-06-18[dev.simd] cmd/compile: add fp1gp1fp1 register mask for AMD64David Chase
This is paired with a matching simdgen CL 682679 Change-Id: Id494d40b5e64b723a47c1682b71e523a77b0eb87 Reviewed-on: https://go-review.googlesource.com/c/go/+/682656 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-06-18[dev.simd] cmd/compile: remove fused mul/add/sub shapes.Junyang Shao
This CL only keeps one shape of those fused mul/add/sub operations. The rest of the instructions will be generated during lowering as an optimization. This CL is generated by CL 682436. Change-Id: Iadee1786185289838e04f3aa8f333844cfacc02e Reviewed-on: https://go-review.googlesource.com/c/go/+/682435 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-06-17[dev.simd] cmd/compile: fix signature error of PairDotProdAccumulate.Junyang Shao
This CL is generated by CL 682135. Change-Id: I6f004b2eca6323f1ff22555c85db993386f24c6c Reviewed-on: https://go-review.googlesource.com/c/go/+/682155 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-06-17[dev.simd] cmd/compile: removed a map iteration from generator; tweaked type ↵David Chase
order Output of CL 682316 Change-Id: I566486085fbd8a5437a5904ed02f718da7fed2c9 Reviewed-on: https://go-review.googlesource.com/c/go/+/682355 Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-06-17[dev.simd] cmd/compile: alphabetize SIMD intrinsicsDavid Chase
This is the output of CL 682036 Change-Id: I432c6e059dff7019a6bba6b777ea7fe48990278f Reviewed-on: https://go-review.googlesource.com/c/go/+/682295 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>