aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile
AgeCommit message (Collapse)Author
2026-01-23cmd/compile: add limits bruteforce tests for bitlenJorropo
This ensure BitLen is perfect within the limitations limits can represent. Change-Id: I5c1770b4a9f6408fd68fe77b4ef2b2cdd52e26cb Reviewed-on: https://go-review.googlesource.com/c/go/+/727781 Reviewed-by: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Jorropo <jorropo.pgm@gmail.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org>
2026-01-23cmd/compile: improve Ctz's limits modeling and add bruteforce testsJorropo
This make Ctz perfect within the limitations limits can represent. Change-Id: I1e596d8d01892d1b70031cf03cecc487ce147b38 Reviewed-on: https://go-review.googlesource.com/c/go/+/727780 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Jorropo <jorropo.pgm@gmail.com>
2026-01-23cmd/compile: cleanup isUnsignedPowerOfTwoJorropo
Merge the signed and unsigned generic functions. The only implementation difference between the two is: n > 0 vs n != 0 check. For unsigned numbers n > 0 == n != 0 and we infact optimize the first to the second. Change-Id: Ia2f6c3e3d4eb098d98f85e06dc2e81baa60bad4e Reviewed-on: https://go-review.googlesource.com/c/go/+/726720 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Carlos Amedee <carlos@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2026-01-23cmd/compile: fix typos in types2 api_test.gogoto1134
Change-Id: Ifee1b0f590ebb6671efd61a289c8884a225f5d6b GitHub-Last-Rev: 175ae95847b0108949459b881c2cd2144e74353e GitHub-Pull-Request: golang/go#76782 Reviewed-on: https://go-review.googlesource.com/c/go/+/728980 Reviewed-by: Jorropo <jorropo.pgm@gmail.com> Auto-Submit: Jorropo <jorropo.pgm@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Michael Pratt <mpratt@google.com>
2026-01-23go/types, types: flip field/method selection logic inside out (cleanup)Robert Griesemer
By selecting on *Var/*Func first, the field/method selection logic becomes a bit cleaner, clearer, and a little bit simpler. No functional changes. Change-Id: I9860f98d52779b0f7ce4484ea77e74a3667d9e6b Reviewed-on: https://go-review.googlesource.com/c/go/+/738080 Reviewed-by: Alan Donovan <adonovan@google.com> Commit-Queue: Robert Griesemer <gri@google.com> Reviewed-by: Robert Griesemer <gri@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Robert Griesemer <gri@google.com>
2026-01-23cmd/compile: avoid extending when already sufficiently shifted on loong64Xiaolin Zhao
This reduces 744 instructions from the go toolchain binary on loong64. file before after Δ % asm 599282 599222 -60 -0.0100% cgo 513606 513534 -72 -0.0140% compile 2939250 2939146 -104 -0.0035% cover 564136 564056 -80 -0.0142% fix 895622 895546 -76 -0.0085% link 759460 759376 -84 -0.0111% preprofile 264960 264916 -44 -0.0166% vet 869964 869888 -76 -0.0087% go 1712990 1712890 -100 -0.0058% gofmt 346416 346368 -48 -0.0139% total 9465686 9464942 -744 -0.0079% Change-Id: I32dfa7506d0458ca0b6de83b030c330cd2b82176 Reviewed-on: https://go-review.googlesource.com/c/go/+/725720 Auto-Submit: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Keith Randall <khr@google.com>
2026-01-23cmd/compile/internal/pgo: error parsing profile (for pgo) after scalingRyan Diep
If a valid profile is scaled such that the samples/counts become 0, an empty graph in which the compiler complain that we never saw a start line since the graph has no nodes which is a misleading error message. src/cmd/internal/pgo/pprof.go was modified to check if the graph is empty return an empty profile. GitHub-Pull-Request: golang/go#73640 Change-Id: If3f7ab8af6fcf77b2e29ae1df154f87bee377ab0 Reviewed-on: https://go-review.googlesource.com/c/go/+/725120 Reviewed-by: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Auto-Submit: Michael Pratt <mpratt@google.com>
2026-01-22go/types, types2: remove support for gotypesalias GODEBUG flagRobert Griesemer
For #76472. Change-Id: Ia51b41639637b1de916625e73c26f625382be305 Reviewed-on: https://go-review.googlesource.com/c/go/+/736441 Reviewed-by: Alan Donovan <adonovan@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Robert Griesemer <gri@google.com> Reviewed-by: Robert Griesemer <gri@google.com> Commit-Queue: Robert Griesemer <gri@google.com>
2026-01-22cmd/compile: ensure ops have the expected argument widthsKeith Randall
The generic SSA representation uses explicit extension and truncation operations to change widths of values. The map intrinsics were playing somewhat fast and loose with this requirement. Fix that, and add a check to make sure we don't regress. I don't think there is a triggerable bug here, but I ran into this with some prove pass modifications, where cmd/compile/internal/ssa/prove.go:isCleanExt (and/or its uses) is actually wrong when this invariant is not maintained. Change-Id: Idb7be6e691e2dbf6d7af6584641c3227c5c64bf5 Reviewed-on: https://go-review.googlesource.com/c/go/+/731300 Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Pratt <mpratt@google.com>
2026-01-22cmd/compile: optimize small constant-sized MemEqAlexander Musman
Add optimization patterns for MemEq with small constant sizes (3-32 bytes). These patterns help to avoid runtime calls for small sizes. For sizes 3-16, combine two chunks loading and comparison. For sizes 17-32, combine a 16-byte comparison with the remaining bytes. This change may increase binary size slightly due to inline expansion, but improves performance for code with many small memequals, e.g. DecodehealingTracker benchmark on arm64: shortname: minio pkg: github.com/minio/minio/cmd │ Orig.res │ Uexp.res │ │ sec/op │ sec/op vs base │ DecodehealingTracker-4 842.5n ± 1% 794.0n ± 3% -5.75% (p=0.000 n=10) AppendMsgResyncTargetsInfo-4 8.472n ± 0% 8.472n ± 0% ~ (p=0.582 n=10) DataUpdateTracker-4 2.856µ ± 2% 2.804µ ± 3% ~ (p=0.210 n=10) MarshalMsgdataUsageCacheInfo-4 131.2n ± 1% 131.6n ± 2% ~ (p=0.494 n=10) geomean 227.4n 223.2n -1.86% │ Orig.res │ Uexp.res │ │ B/s │ B/s vs base │ DecodehealingTracker-4 352.0Mi ± 1% 373.5Mi ± 3% +6.10% (p=0.000 n=10) AppendMsgResyncTargetsInfo-4 1.099Gi ± 0% 1.099Gi ± 0% ~ (p=0.183 n=10) DataUpdateTracker-4 341.8Ki ± 3% 351.6Ki ± 3% ~ (p=0.286 n=10) geomean 50.95Mi 52.46Mi +2.96% Change-Id: If3d7e7395656d5f36e3ab303a71044293d17bc3e Reviewed-on: https://go-review.googlesource.com/c/go/+/688195 Reviewed-by: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Keith Randall <khr@google.com>
2026-01-22cmd/compile: speedup large init function compile timeCuong Manh Le
Fixes #77153 Change-Id: Ia3906e4d686281be78b65daf7a7a4fd1b2b2483d Reviewed-on: https://go-review.googlesource.com/c/go/+/737880 Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
2026-01-22internal/runtime: remove math.Mul64Gavin Lam
internal/runtime/math.Mul64 is a copy of math/bits.Mul64 and redundant. Change-Id: I4dd2ab531a32da97839c6b45cf90df6430811967 GitHub-Last-Rev: 1a73e16049ee346ccfa8f052856e49e10e202d70 GitHub-Pull-Request: golang/go#77187 Reviewed-on: https://go-review.googlesource.com/c/go/+/736500 Auto-Submit: Keith Randall <khr@google.com> Reviewed-by: Jorropo <jorropo.pgm@gmail.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2026-01-22cmd/compile: allow Bswap{64,32,16} on loong64Guoqi Chen
On Loong64, Bswap{64,32,16} has been implemented with REVB{2H, 2W,V} instruction Change-Id: Ia7f40ef3b1a85bfb0b20563098cb792b00cec498 Reviewed-on: https://go-review.googlesource.com/c/go/+/737841 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> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Keith Randall <khr@google.com>
2026-01-22cmd/compile: reserve less memory for bitvectorsKeith Randall
We only need 4 per block, not 7. That's almost 50% savings. Update #77170 Change-Id: I6229a1137e7a03769e30bd4081078817de9a4f84 Reviewed-on: https://go-review.googlesource.com/c/go/+/736340 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Keith Randall <khr@golang.org>
2026-01-22cmd/compile: remove unnecessary code in keepAliveAtCuong Manh Le
TypeWord and SrcRType are only needed for interface expression conversion. Since CL 725180, the kept alive nodes are passed directly to runtime.KeepAlive, so there's no interface conversion anymore. Change-Id: I37ad8016bf76a1bf8ba36efea043fc71341b33c7 Reviewed-on: https://go-review.googlesource.com/c/go/+/737840 Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>
2026-01-22cmd/compile: fix mis-compilation for static array initializationCuong Manh Le
The bug was first introduced when the compiler is still written in C, with CL 2254041. The static array was laid out with the wrong context, causing a stack pointer will be stored in global object. Fixes #61730 Fixes #77193 Change-Id: I22c8393314d251beb53db537043a63714c84f36a Reviewed-on: https://go-review.googlesource.com/c/go/+/737821 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Keith Randall <khr@golang.org>
2026-01-22cmd/compile: refactor preserveStmtCuong Manh Le
By breaking it into smaller functions with duplicated logic removed. Change-Id: I710414e8d13d91c19fb4bf4da1a31b00ee88ccee Reviewed-on: https://go-review.googlesource.com/c/go/+/728961 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
2026-01-22cmd/compile: better name for BloopWalkCuong Manh Le
Use bloop.Walk instead of BloopWalk for better naming. Change-Id: I60fb7abf8cdab2c7641c69d1cc06c1d6bef1600b Reviewed-on: https://go-review.googlesource.com/c/go/+/728960 Reviewed-by: Keith Randall <khr@google.com> Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> Reviewed-by: Keith Randall <khr@golang.org>
2026-01-21go/types, types2: better error when selecting field on type rather than valueRobert Griesemer
Fixes #6814. Change-Id: I659670998f8e89400d03d40189e8c54f7e705cdc Reviewed-on: https://go-review.googlesource.com/c/go/+/738040 Reviewed-by: Alan Donovan <adonovan@google.com> Auto-Submit: Robert Griesemer <gri@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Robert Griesemer <gri@google.com>
2026-01-20cmd/compile/internal/staticinit: fix bug in global new(expr)Alan Donovan
The StaticInit pass asserts that the operand of &v is a global, but this is not so for the &autotemp desugaring of new(expr). (The variable has by that point escaped to the heap, so the object code calls runtime.newobject. A future optimization would be to statically allocate the variable when it is safe and advantageous to do so.) Thanks to khr for suggesting the fix. + static test Fixes #77237 Change-Id: I71b34a1353fe0f3e297beab9851f8f87d765d8f1 Reviewed-on: https://go-review.googlesource.com/c/go/+/737680 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2026-01-15go/types,cmd/compile/internal/types2: better diagnostic for type shadowingAlan Donovan
This change causes the "x is not a type" diagnostic to describe x's actual kind, helping to reveal when shadowing is at work. (The kind description could improve other errors too.) Fixes #76877 Change-Id: Ia3484998bb384ff570c20b6792cf8461c60aa38c Reviewed-on: https://go-review.googlesource.com/c/go/+/731180 Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Alan Donovan <adonovan@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Robert Griesemer <gri@google.com>
2026-01-13simd/archsimd: 128- and 256-bit FMA operations do not require AVX-512Austin Clements
Currently, all FMA operations are marked as requiring AVX512, even on smaller vector widths. This is happening because the narrower FMA operations are marked as extension "FMA" in the XED. Since this extension doesn't start with "AVX", we filter them out very early in the XED process. However, this is just a quirk of naming: the FMA feature depends on the AVX feature, so it is part of AVX, even if it doesn't say so on the tin. Fix this by accepting the FMA extension and adding FMA to the table of CPU features. We also tweak internal/cpu slightly do it correctly enforces that the logical FMA feature depends on both the FMA and AVX CPUID flags. This actually *deletes* a lot of generated code because we no longer need the AVX-512 encoding of these 128- and 256-bit operations. Change-Id: I744a18d0be888f536ac034fe88b110347622be7e Reviewed-on: https://go-review.googlesource.com/c/go/+/736160 Auto-Submit: Austin Clements <austin@google.com> Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/736201 Reviewed-by: Austin Clements <austin@google.com>
2026-01-13runtime: rename mallocTiny* to mallocgcTinySize*Michael Matloob
This makes it easier to identify which functions are used for memory allocation by looking for functions that start with mallocgc. The Size suffix is added so that the isSpecializedMalloc function in cmd/compile/internal/ssa can distinguish between the generated functions and the mallocgcTiny function called by mallocgc, similar to the SC suffixes for the mallocgcSmallNoScanSC* and mallocgcSmallScanNoHeaderSC* functons. Change-Id: I6ad7f15617bf6f18ae5d1bfa2a0b94e86a6a6964 Reviewed-on: https://go-review.googlesource.com/c/go/+/735780 Reviewed-by: Michael Matloob <matloob@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2026-01-13all: fix misspellings in commentscuishuang
Change-Id: I121847e7f68c602dd8e9ecddfc41b547f8a86f10 Reviewed-on: https://go-review.googlesource.com/c/go/+/734361 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Robert Griesemer <gri@google.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>
2026-01-08simd/archsimd: rename Broadcast methodsCherry Mui
Currently the Broadcast128/256/512 methods broadcast the lowest element of the input vector to a vector of the corresponding width. There are also variations of broadcast operations that broadcast the whole (128- or 256-bit) vector to a larger vector, which we don't yet support. Our current naming is unclear which version it is, though. Rename the current ones to Broadcast1ToN, to be clear that they broadcast one element. The vector version probably will be named BoradcastAllToN (not included in this CL). Change-Id: I47a21e367f948ec0b578d63706a40d20f5a9f46d Reviewed-on: https://go-review.googlesource.com/c/go/+/734840 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>
2026-01-05simd/archsimd: use V(P)MOVMSK for mask ToBits if possibleCherry Mui
VPMOVMSKB, VMOVMSKPS, and VMOVMSKPD moves AVX1/2-style masks to integer registers, similar to VPMOV[BWDQ]2M (which moves to mask registers). The former is available on AVX1/2, the latter requires AVX512. So use the former if it is supported, i.e. for 128- and 256-bit vectors with 8-, 32-, and 64-bit elements (16-bit elements always require AVX512). Change-Id: I972195116617ed2faaf95cee5cd6b250e671496c Reviewed-on: https://go-review.googlesource.com/c/go/+/734060 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>
2026-01-02cmd/compile: optimize SIMD IsNaN.Or(IsNaN)Cherry Mui
IsNaN's underlying instruction, VCMPPS (or VCMPPD), takes two inputs, and computes either of them is NaN. Optimize the Or pattern to generate two-operand form. This implements the optimization mentioned in CL 733660. Change-Id: I13943b377ee384864c913eed320763f333a03e41 Reviewed-on: https://go-review.googlesource.com/c/go/+/733680 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2026-01-02simd/archsimd: make IsNaN unaryCherry Mui
Currently, the IsNan API is defined as x.IsNan(y), which returns a mask to represent, for each element, either x or y is NaN. Albeit closer to the machine instruction, this is weird API, as IsNaN is a unary operation. This CL changes it to unary, x.IsNaN(). It compiles to VCMPPS $3, x, x (or VCMPPD). For the two-operand version, we can optimize x.IsNaN().Or(y.IsNaN()) to VCMPPS $3, x, y (not done in this CL). While here, change the name to IsNaN (uppercase both Ns), which matches math.IsNaN. Tests in the next CL. Change-Id: Ib6e7afc2635e6c3c606db5ea16420ee673a6c6d6 Reviewed-on: https://go-review.googlesource.com/c/go/+/733660 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-12-30cmd/compile: disable inlining for functions using runtime.deferrangefunczuojunwei.1024
The rangefunc rewrite pass implements defer using deferrangefunc and deferproccat. The loop body is rewritten into a closure, it cannot be inlined due to defer call. But the outer function may still be inlined in certain scenarios (e.g., with PGO), leading to the defer executing at the wrong time. Fixes #77033 Change-Id: I4649fad5cd1b65891832523522002d9352711123 Reviewed-on: https://go-review.googlesource.com/c/go/+/732140 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-12-29simd/archsimd: remove redundant suffix of ExtendLo operationsCherry Mui
For methods like ExtendLo2ToInt64x2, the last "x2" is redundant, as it is already mentioned in "Lo2". Remove it, so it is just ExtendLo2ToInt64. Change-Id: I490afd818c40bb7a4ef15c249723895735bd6488 Reviewed-on: https://go-review.googlesource.com/c/go/+/733100 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-12-24simd/archsimd: fix "go generate" commandCherry Mui
Correct the generate command for test helpers. There is no longer a genfiles.go. Also correct the generated file headers to match the current generator layout. Change-Id: Ifb9a8c394477359020ff44290dbaabe7a2d59aca Reviewed-on: https://go-review.googlesource.com/c/go/+/732280 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Auto-Submit: David Chase <drchase@google.com>
2025-12-23cmd/compile: handle propagating an out-of-range jump table indexCuong Manh Le
For an out-of-range jump table index, the constant facts should not be propagated to the destinations. Fixes #76950 Change-Id: Iff29814cb466c7aaa432cec212e5387665c45afc Reviewed-on: https://go-review.googlesource.com/c/go/+/731860 Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-12-22simd/archsimd: correct documentation for pairwise operationsCherry Mui
For Add/SubPairs(Saturated?), the documented result element order is wrong. Corrected. Also, for 256-bit vectors, this is a grouped operation. So name it with the Grouped suffix to be clear. Change-Id: Idfd0975cb4a332b2e28c898613861205d26f75b0 Reviewed-on: https://go-review.googlesource.com/c/go/+/732020 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-12-19simd/archsimd: delete DotProductQuadruple methods for nowCherry Mui
The DotProductQuadruple methods are currently defined on Int8 vectors. There are some problems for that. 1. We defined a DotProductQuadrupleSaturated method, but the dot product part does not need saturation, as it cannot overflow. It is the addition part of VPDPBUSDS that does the saturation. Currently we have optimization rules like x.DotProductQuadrupleSaturated(y).Add(z) -> VPDPBUSDS which is incorrect, in that the dot product doesn't do (or need) saturation, and the Add is a regular Add, but we rewrite it to a saturated add. The correct rule should be something like x.DotProductQuadruple(y).AddSaturated(z) -> VPDPBUSDS 2. There are multiple flavors of DotProductQuadruple: signed/unsigned × signed/unsigned, which cannot be completely disambiguated by the type. The current naming may preclude adding all the flavors. For these reasons, remove the methods for now. We can add them later with the issues addressed. Change-Id: I549c0925afaa68c7e2cc956105619f2c1b46b325 Reviewed-on: https://go-review.googlesource.com/c/go/+/731441 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-12-19simd/archsimd: add Grouped for 256- and 512-bit SaturateTo(U)Int16Concat, ↵Cherry Mui
and fix type They operate on 128-bit groups, so name them Grouped to be clear, and consistent with other grouped operations. Reword the documentation, mention the grouping only for grouped versions. Also, SaturateToUnt16Concat(Grouped) is a signed int32 to unsigned uint16 saturated conversion. The receiver and the parameter should be signed. The result remains unsigned. Change-Id: I30e28bc05e07f5c28214c9c6d9d201cbbb183468 Reviewed-on: https://go-review.googlesource.com/c/go/+/731501 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-12-19simd/archsimd: correct type and instruction for SaturateToUint8Cherry Mui
It should be defined on unsigned types, not signed types, and use unsigned conversion instructions. Change-Id: I49694ccdf1d331cfde88591531c358d9886e83e6 Reviewed-on: https://go-review.googlesource.com/c/go/+/731500 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-12-16cmd/compile: use unsigned constant when folding loads for SIMD ops with ↵Cherry Mui
constants When folding loads into a SIMD op with a constant, in the SSA rules we use makeValAndOff to create an AuxInt for the constant and the offset. For the SIMD ops of concern (for now), the constants are always unsigned. So pass the constant unsigned. Fixes #76756. Change-Id: Ia5910e689ff510ce54d3a0c2ed0e950bc54f8862 Reviewed-on: https://go-review.googlesource.com/c/go/+/730420 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-12-11cmd/compile: update ABI document for riscv64Meng Zhuo
The duff device has been dropped on riscv64, we can remove related documentation now. Change-Id: Iffe5093bde6854bca236e290b91ab9f48d3f8c06 Reviewed-on: https://go-review.googlesource.com/c/go/+/728901 Reviewed-by: Mark Ryan <markdryan@rivosinc.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Joel Sing <joel@sing.id.au> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2025-12-11go/types, types2: remove indirection of Named.finiteMark Freeman
This field is now guarded by a state bit. The "unknown" state is hence indicated by absence of that bit. Change-Id: I9605538f089dd4fd638e5f0f416cd4b8737b6f88 Reviewed-on: https://go-review.googlesource.com/c/go/+/729041 Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Mark Freeman <markfreeman@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-12-11simd/archsimd: rename Mask.AsIntMxN to Mask.ToIntMxNCherry Mui
To be more consistent with vector.ToMask and mask.ToBits. Cherry-pick CL 729022 from the dev.simd branch, for Go 1.26. Change-Id: I4ea4dfd0059d256f39a93d1fe2ce1de158049800 Reviewed-on: https://go-review.googlesource.com/c/go/+/729223 Auto-Submit: David Chase <drchase@google.com> Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-12-11go/types, types2: put Named.finite behind Named.muMark Freeman
This change adds another leaf state to named types which indicates whether the type's size finiteness is known. Without this, writes to Named.finite can result in a clobbered value. While benign in terms of functionality, it triggers the race detector. Fixes #76773 Change-Id: I2ac3d8d6f8be55a8120598daecb3e78aa7df5f30 Reviewed-on: https://go-review.googlesource.com/c/go/+/729021 Reviewed-by: Robert Griesemer <gri@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Mark Freeman <markfreeman@google.com>
2025-12-09cmd: fix some issues in the commentscuishuang
Change-Id: Id2c4152b43c7ee1a687e49da7dda5a690e554231 Reviewed-on: https://go-review.googlesource.com/c/go/+/727900 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Keith Randall <khr@golang.org>
2025-12-09go/types, types2: add check for finite size at value observanceMark Freeman
Each type must be representable by a finite amount of Go source code after replacing all alias type names, value names, and embedded interfaces (per #56103) with the RHS from their respective declarations ("expansion"); otherwise the type is invalid. Furthermore, each type must have a finite size. Checking for finite source after expansion is handled in decl.go. Checking for finite size is handled in validtype.go and is delayed to the end of type checking (unless used in unsafe.Sizeof, in which case it is computed eagerly). We can only construct values of valid types. Thus, while a type is pending (on the object path and thus not yet valid), it cannot construct a value of its own type (directly or indirectly). This change enforces the indirect case by validating each type at value observance (and hence upholding the invariant that values of only valid types are created). Validation is cached on Named types to avoid duplicate work. As an example, consider: type A [unsafe.Sizeof(B{})]int type B A Clearly, since there are no aliases, A and B have finite source. At the site of B{}, B will be checked for finite size, recursing down the values of B, at which point A is seen. Since A is on the object path, there is a cycle preventing B from being proven valid before B{}, violating our invariant. Note that this change also works for generic types. Fixes #75918 Fixes #76478 Change-Id: I76d493b5da9571780fed4b3c76803750ec184818 Reviewed-on: https://go-review.googlesource.com/c/go/+/726580 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Mark Freeman <markfreeman@google.com>
2025-12-08[dev.simd] all: merge master (a33bbf1) into dev.simdCherry Mui
Merge List: + 2025-12-08 a33bbf1988 weak: fix weak pointer test to correctly iterate over weak pointers after GC + 2025-12-08 a88a96330f cmd/cgo: use doc link for cgo.Handle + 2025-12-08 276cc4d3db cmd/link: fix AIX builds after recent linker changes + 2025-12-08 f2d96272cb runtime/trace: update TestSubscribers to dump traces + 2025-12-08 4837bcc92c internal/trace: skip tests for alloc/free experiment by default + 2025-12-08 b5f6816cea cmd/link: generate DWARF for moduledata + 2025-12-08 44a39c9dac runtime: only run TestNotInGoMetricCallback when building with cgo + 2025-12-08 3a6a034cd6 runtime: disable TestNotInGoMetricCallback on FreeBSD + race + 2025-12-08 4122d3e9ea runtime: use atomic C types with atomic C functions + 2025-12-08 34397865b1 runtime: deflake TestProfBufWakeup + 2025-12-08 d4972f6295 runtime: mark getfp as nosplit + 2025-12-05 0d0d5c9a82 test/codegen: test negation with add/sub on riscv64 + 2025-12-05 2e509e61ef cmd/go: convert some more tests to script tests + 2025-12-05 c270e71835 cmd/go/internal/vet: skip -fix on pkgs from vendor or non-main mod + 2025-12-05 745349712e runtime: don't count nGsyscallNoP for extra Ms in C + 2025-12-05 f3d572d96a cmd/go: fix race applying fixes in fix and vet -fix modes + 2025-12-05 76345533f7 runtime: expand Pinner documentation + 2025-12-05 b133524c0f cmd/go/testdata/script: skip vet_cache in short mode + 2025-12-05 96e142ba2b runtime: skip TestArenaCollision if we run out of hints + 2025-12-05 fe4952f116 runtime: relax threadsSlack in TestReadMetricsSched + 2025-12-05 8947f092a8 runtime: skip mayMoreStackMove in goroutine leak tests + 2025-12-05 44cb82449e runtime/race: set missing argument frame for ppc64x atomic And/Or wrappers + 2025-12-05 435e61c801 runtime: reject any goroutine leak test failure that failed to execute + 2025-12-05 54e5540014 runtime: print output in case of segfault in goroutine leak tests + 2025-12-05 9616c33295 runtime: don't specify GOEXPERIMENT=greenteagc in goroutine leak tests + 2025-12-05 2244bd7eeb crypto/subtle: add speculation barrier after DIT + 2025-12-05 f84f8d86be cmd/compile: fix mis-infer bounds in slice len/cap calculations + 2025-12-05 a70addd3b3 all: fix some comment issues + 2025-12-05 93b49f773d internal/runtime/maps: clarify probeSeq doc comment + 2025-12-04 91267f0a70 all: update vendored x/tools + 2025-12-04 a753a9ed54 cmd/internal/fuzztest: move fuzz tests out of cmd/go test suite + 2025-12-04 1681c3b67f crypto: use rand.IsDefaultReader instead of comparing to boring.RandReader + 2025-12-04 7b67b68a0d cmd/compile: use isUnsignedPowerOfTwo rather than isPowerOfTwo for unsigneds + 2025-12-03 2b62144069 all: REVERSE MERGE dev.simd (9ac524a) into master Change-Id: Ia0cdf06cdde89b6a4db30ed15ed8e0bcbac6ae30
2025-12-08[dev.simd] cmd/compile: zero only low 128-bit of X15Cherry Mui
Zeroing the upper part of X15 may make the CPU think it is "dirty" and slow down SSE operations. For now, just not zeroing the upper part, and construct a zero value on the fly if we need a 256- or 512-bit zero value. Maybe VZEROUPPER works better than explicitly zeroing X15, but we need to evaluate. Long term, we probably want to move more things from SSE to AVX. This essentially undoes CL 698237 and CL 698238, except keeping using X15 for 128-bit zeroing for SIMD. Change-Id: I1564e6332c4c57f9721397c92c7c734c5497534c Reviewed-on: https://go-review.googlesource.com/c/go/+/728240 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2025-12-08[dev.simd] simd, cmd/compile: move "simd" to "simd/archsimd"David Chase
Also removes a few leftover TODOs and scraps of commented-out code from simd development. Updated etetest.sh to make it behave whether amd64 implies the experiment, or not. Fixes #76473. Change-Id: I6d9792214d7f514cb90c21b101dbf7d07c1d0e55 Reviewed-on: https://go-review.googlesource.com/c/go/+/728220 TryBot-Bypass: David Chase <drchase@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2025-12-08[dev.simd] simd: add carryless multiplyDavid Chase
now with comments, and also a test. choice of data types, method names, etc, are all up for comment. It's NOT commutative, because of the immediate operand (unless we swap the bits of the immediate). Change-Id: I730a6938c6803d0b93544445db65eadc51783e42 Reviewed-on: https://go-review.googlesource.com/c/go/+/726963 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2025-12-05cmd/compile: fix mis-infer bounds in slice len/cap calculationsCuong Manh Le
CL 704875 enhanced prove to infer bounds when index have a relationship with len(A) - K. However, the change incorrectly infer "K - len(A)" case, causing wrong bounds information. Fixing this by matching exactly "len(A) - K" case. Fixes #76709 Change-Id: Ibeedff55520658401af5bd3aa7e98cc1bcf38fd6 Reviewed-on: https://go-review.googlesource.com/c/go/+/727180 Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Jakub Ciolek <jakub@ciolek.dev> Reviewed-by: David Chase <drchase@google.com>
2025-12-04cmd/compile: use isUnsignedPowerOfTwo rather than isPowerOfTwo for unsignedsJorropo
Fixes #76688 Change-Id: Icb8dab54a5ce7d83b656d50d5ea605d2a62b96f8 Reviewed-on: https://go-review.googlesource.com/c/go/+/726680 Auto-Submit: Jorropo <jorropo.pgm@gmail.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2025-12-03[dev.simd] all: merge master (5945fc0) into dev.simdDavid Chase
Merge List: + 2025-12-03 5945fc02fc doc/next: delete + 2025-12-03 dcc5fe0c62 api: promote next to go1.26 + 2025-12-03 7991da1161 crypto/hpke: remove unused hybridKEM field + 2025-12-03 2729e87aa5 doc/next: pluralize 'result' + 2025-12-03 6e72f526cd doc/next/6-stdlib/99-minor/go/ast/76031.md: add BasicLit caveat + 2025-12-03 fa30b68767 go/{ast,doc}: update BasicLit.ValueEnd as well as ValuePos + 2025-12-03 32a9804c7b cmd/link: don't update offset of existing ELF section name + 2025-12-02 509ddf3868 cmd/compile: ensure bloop only kept alive addressable nodes + 2025-12-02 7cab1b1b26 doc: pre-announce removal of gotypesalias and asynctimerchan GODEBUG flags + 2025-12-02 1a64db3a4b spec: remove restriction on channel element types for close built-in (bug fix) + 2025-12-02 2e06fa6b68 doc/next: release note for scheduler metrics + 2025-12-02 77c795011b doc/next: document cgo call overhead improvement + 2025-12-02 6e4abe8cef doc: mention stack allocation of slices + 2025-12-02 88c24de8b5 doc/next: add section for Green Tea + 2025-12-02 043b9de658 net: parse addresses without separators in ParseMac + 2025-12-02 e432b4f3a1 cmd/compile: more generated equality function tests + 2025-12-02 c1acdcb345 crypto/x509: prevent HostnameError.Error() from consuming excessive resource + 2025-12-02 8ae5d408ed spec: more precise prose for built-in function new + 2025-12-02 c5c05a0e43 cmd/go: add test checking version with experiment is valid + 2025-12-01 f22d37d574 runtime/internal/testprog: log initial SchedMetrics GOMAXPROCS + 2025-12-01 8b5db48db1 net/http: deflake TestClientConnReserveAndConsume + 2025-12-01 94616dad42 internal/runtime/cgroup: remove duplicate readString definition + 2025-12-01 67851547d8 internal/runtime/cgroup: lineReader fuzz test + 2025-12-01 ac3e0ae51a doc: document go tool pprof -http default change + 2025-12-01 42e03bbd27 debug/elf: correct case of DWARF in comment + 2025-12-01 18015e8c36 doc/next: clean up some Go 1.26 release notes + 2025-12-01 4be545115c cmd/pprof: update vendored github.com/google/pprof + 2025-12-01 16c0f7e152 cmd/compile: run go generate for internal/ir + 2025-12-01 dc913c316a all: update vendored dependencies + 2025-12-01 1555fad47d vendor/golang.org/x/tools: update to 1ad6f3d + 2025-12-01 eec1afeb28 debug/elf: make check for empty symbol section consistent for 64-bit and 32-bit binaries + 2025-11-28 3f94f3d4b2 test/codegen: fix shift tests on riscv64 + 2025-11-28 2ac1f9cbc3 cmd/compile: avoid unnecessary interface conversion in bloop + 2025-11-28 de456450e7 runtime/secret: disable tests under memory validating modes + 2025-11-27 67d4a28707 fmt: document space behavior of Append + 2025-11-27 c079dd13c0 runtime/secret: reorganize tests to fix -buildmode=shared + 2025-11-27 2947cb0469 runtime/_mkmalloc: fix log.Fatal formatting directive + 2025-11-26 cead111a77 internal/runtime/cgroup: stricter unescapePath + 2025-11-26 c2af9f14b4 internal/runtime/cgroup: fix path on non-root mount point + 2025-11-26 6be5de4bc4 internal/runtime/cgroup: simplify escapePath in test + 2025-11-26 481c6df7b9 io: reduce intermediate allocations in ReadAll and have a smaller final result + 2025-11-26 cec4d4303f os: allow direntries to have zero inodes on Linux + 2025-11-26 f1bbc66a10 cmd/link: test that moduledata is in its own section + 2025-11-26 003f52407a cmd/link: test that findfunctab is in gopclntab section + 2025-11-26 21b6ab57d5 cmd/link: test that funcdata values are in gopclntab section + 2025-11-26 c03e25a263 cmd/link: always run current linker in tests + 2025-11-26 9f5cd43fe6 cmd/link: put moduledata in its own .go.module section + 2025-11-26 43cfd785e7 cmd/link, runtime, debug/gosym: move pclntab magic to internal/abi + 2025-11-26 312b2034a4 cmd/link: put runtime.findfunctab in the .gopclntab section + 2025-11-26 b437d5bf36 cmd/link: put funcdata symbols in .gopclntab section + 2025-11-26 4bc3410b6c cmd/link: build shstrtab from ELF sections + 2025-11-26 b0c278be40 cmd/link: use shdr as a slice rather than counting in elfhdr.Shnum + 2025-11-26 0ff323143d cmd/link: sort allocated ELF section headers by address + 2025-11-26 4879151d1d cmd/compile: introduce alias analysis and automatically free non-aliased memory after growslice + 2025-11-26 d8269ab0d5 cmd/link, cmd/internal/obj: fix a remote call failure issue + 2025-11-26 c6d64f8556 cmd/internal/obj/loong64: remove the incorrect unsigned instructions + 2025-11-26 c048a9a11f go/types, types2: remove InvalidTypeCycle from literals.go + 2025-11-26 ff2fd6327e go/types, types2: remove setDefType and most def plumbing + 2025-11-26 3531ac23d4 go/types, types2: replace setDefType with pending type check + 2025-11-26 2b8dbb35b0 crypto,testing/cryptotest: ignore random io.Reader params, add SetGlobalRandom + 2025-11-26 21ebed0ac0 runtime: update mkmalloc to make generated code look nicer + 2025-11-26 a3fb92a710 runtime/secret: implement new secret package + 2025-11-26 0c747b7aa7 go/build/constraint: use strings.Builder instead of for { str+=str } + 2025-11-26 0f6397384b go/types: relax NewSignatureType for append(slice, str...) + 2025-11-26 992ad55e3d crypto/tls: support crypto.MessageSigner private keys + 2025-11-26 3fd9cb1895 cmd/compile: fix bloop get name logic + 2025-11-26 3353c100bb cmd/go: remove experiment checks for compile -c + 2025-11-26 301d9f9b52 doc/next: document broken freebsd/riscv64 port + 2025-11-26 de39282332 cmd/compile, runtime: guard X15 zeroing with GOEXPERIMENT=simd + 2025-11-26 86bbea0cfa crypto/fips140: add WithoutEnforcement + 2025-11-26 e2cae9ecdf crypto/x509: add ExtKeyUsage.OID method + 2025-11-26 623ef28135 cmd/go: limit total compile -c backend concurrency using a pool + 2025-11-26 3c6bf6fbf3 cmd/compile: handle loops better during stack allocation of slices + 2025-11-26 efe9ad501d go/types, types2: improve printing of []*operand lists (debugging support) + 2025-11-26 ac3369242d runtime: merge all the linux 32 and 64 bits files into one for each + 2025-11-26 fb5156a098 testing: fix bloop doc + 2025-11-26 b194f5d24a os,internal/syscall/windows: support O_* flags in Root.OpenFile + 2025-11-26 e0a4dffb0c cmd/internal/obj/loong64: add {,x}vmadd series instructions support + 2025-11-26 c0f02c11ff cmd/internal/obj/loong64: add aliases to 32-bit arithmetic instructions + 2025-11-26 37ce4adcd4 cmd/compile: add tests bruteforcing limit complement + 2025-11-26 437d2362ce os,internal/poll: don't call IsNonblock for consoles and Stdin + 2025-11-26 71f8f031b2 crypto/internal/fips140/aes: optimize ctrBlocks8Asm on amd64 + 2025-11-26 03fcb33c0e cmd/compile: add tests bruteforcing limit negation and improve limit addition + 2025-11-26 dda7c8253d cmd/compile,internal/bytealg: add MemEq intrinsic for runtime.memequal + 2025-11-26 4976606a2f cmd/go: remove final references to modfetch.Fetcher_ + 2025-11-26 08bf23cb97 cmd/go/internal/toolchain: remove references to modfetch.Fetcher_ + 2025-11-26 46d5e3ea0e cmd/go/internal/modget: remove references to modfetch.Fetcher_ + 2025-11-26 a3a6c9f62a cmd/go/internal/load: remove references to modfetch.Fetcher_ + 2025-11-26 c1ef3d5881 cmd/go/internal/modcmd: remove references to modfetch.Fetcher_ + 2025-11-26 ab2829ec06 cmd/compile: adjust start heap size + 2025-11-26 54b82e944e internal/trace: support event constructor for testing + 2025-11-25 eb63ef9d66 runtime: panic if cleanup function closes over cleanup pointer + 2025-11-25 06412288cf runtime: panic on AddCleanup with self pointer + 2025-11-25 03f499ec46 cmd/go/internal/modfetch: remove references to Fetcher_ in test file + 2025-11-25 da31fd4177 cmd/go/internal/modload: replace references to modfetch.Fetcher_ + 2025-11-25 07b10e97d6 cmd/go/internal/modcmd: inject modfetch.Fetcher_ into DownloadModule + 2025-11-25 e96094402d cmd/go/internal/modload: inject modfetch.Fetcher_ into commitRequirements + 2025-11-25 47baf48890 cmd/go/internal/modfetch: inject Fetcher_ into TidyGoSum + 2025-11-25 272df5f6ba crypto/internal/fips140/aes/gcm: add more GCM nonce modes + 2025-11-25 1768cb40b8 crypto/tls: add SecP256r1/SecP384r1MLKEM1024 hybrid post-quantum key exchanges + 2025-11-25 a9093067ee cmd/internal/obj/loong64: add {,X}V{ADD,SUB}W{EV,OD}.{H.B,W.H,D.W,Q.D}{,U} instructions support + 2025-11-25 7b904c25a2 cmd/go/internal/modfetch: move global goSum to Fetcher_ + 2025-11-25 e7358c6cf4 cmd/go: remove fips140 dependency on global Fetcher_ + 2025-11-25 89f6dba7e6 internal/strconv: add testbase tests + 2025-11-25 6954be0baa internal/strconv: delete ftoaryu + 2025-11-25 8d6d14f5d6 compress/flate: move big non-pointer arrays to end of compressor + 2025-11-25 4ca048cc32 cmd/internal/obj/riscv: document compressed instructions + 2025-11-25 a572d571fa path: add more examples for path.Clean + 2025-11-25 eec40aae45 maps: use strings.EqualFold in example + 2025-11-25 113eb42efc strconv: replace Ryu ftoa with Dragonbox + 2025-11-25 6e5cfe94b0 crypto: fix dead links and correct SHA-512 algorithm comment + 2025-11-25 2c7c62b972 crypto/internal/fips140/sha512: interleave scheduling with rounds for 10.3% speed-up + 2025-11-25 5b34354bd3 crypto/internal/fips140/sha256: interleave scheduling and rounds for 11.2% speed-up + 2025-11-25 1cc1337f0a internal/runtime/cgroup: allow more tests to run on all OSes + 2025-11-25 6e4a0d8e44 crypto/internal/fips140/bigmod: vector implementation of addMulVVWx on s390x + 2025-11-25 657b331ff5 net/url: fix example of Values.Encode + 2025-11-25 bd9222b525 crypto/sha3: reduce cSHAKE allocations + 2025-11-25 e3088d6eb8 crypto/hpke: expose crypto/internal/hpke + 2025-11-25 a5ebc6b67c crypto/ecdsa: clean up ECDSA parsing and serialization paths + 2025-11-25 e8fdfeb72b reflect: add iterator equivalents for NumField, NumIn, NumOut and NumMethod + 2025-11-25 12d437c09a crypto/x509: sub-quadratic name constraint checking + 2025-11-25 ed4deb157e crypto/x509: cleanup name constraint tests + 2025-11-25 0d2baa808c crypto/rsa: add EncryptOAEPWithOptions + 2025-11-25 09e377b599 internal/poll: replace t.Sub(time.Now()) with time.Until in test + 2025-11-25 4fb7e083a8 crypto/tls: expose HelloRetryRequest state + 2025-11-24 31d373534e doc: pre-announce removal of 1.23 and earlier crypto GODEBUGs + 2025-11-24 aa093eed83 crypto/fips140: add Version + 2025-11-24 1dc1505d4a cmd/go/internal/modfetch: rename State to Fetcher + 2025-11-24 d3e11b3f90 cmd/go/internal/modload: make State.modfetchState a pointer + 2025-11-24 2f7fd5714f cmd/go: add setters for critical State fields + 2025-11-24 6851795fb6 runtime: add GODEBUG=tracebacklabels=1 to include pprof labels in tracebacks + 2025-11-24 0921e1db83 net/http: add Transport.NewClientConn + 2025-11-24 6465818435 all: update to x/net@bff14c52567061031b9761881907c39e24792736 + 2025-11-24 1a53ce9734 context: don't return the wrong error when Cause races cancellation + 2025-11-24 c6f882f6c5 crypto/x509: add ExtKeyUsage.String and KeyUsage.String methods + 2025-11-24 97d5295f6f crypto/internal/fips140test: add ML-DSA coverage + 2025-11-24 62cd044a79 cmd/compile: add cases for StringLen to prove + 2025-11-24 f1e376f342 cmd/go/internal/auth: fix typo + 2025-11-24 7fbd141de5 runtime: use m.profStack in traceStack + 2025-11-24 0bc192368a runtime: don't write unique string to trace if it's length zero + 2025-11-24 d4f5650cc5 all: REVERSE MERGE dev.simd (7d65463) into master Change-Id: I4273ac3987ae2d0bc1df0051d752d8ef6c5e9af5