diff options
| author | Melnikov Denis <melnikov.denis.aleksandrovich@gmail.com> | 2025-08-21 18:00:57 +0300 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2025-09-09 12:10:01 -0700 |
| commit | 4c63d798cb947a3cdd5a5b68f254a73d83eb288f (patch) | |
| tree | 576b8f309eca9aaf967d9c5b3de66d8ec0c56923 /test/codegen/strings.go | |
| parent | bdd51e785580ce86142e662425982a2673e7c9c6 (diff) | |
| download | go-4c63d798cb947a3cdd5a5b68f254a73d83eb288f.tar.xz | |
cmd/compile: improve stp merging for non-sequent cases
Original algorithm merges stores with the first
mergeable store in the chain, but it misses some
cases. Additional reordering stores in increasing order
of memory access in the chain allows merging in these cases.
Fixes #71987
There are the results of sweet benchmarks and
the difference between sizes of sections .text
│ old.results │ new.results │
│ sec/op │ sec/op vs base │
BleveIndexBatch100-4 7.614 ± 2% 7.548 ± 1% ~ (p=0.190 n=10)
ESBuildThreeJS-4 821.3m ± 0% 819.0m ± 1% ~ (p=0.165 n=10)
ESBuildRomeTS-4 206.2m ± 1% 204.4m ± 1% -0.90% (p=0.023 n=10)
EtcdPut-4 64.89m ± 1% 64.94m ± 2% ~ (p=0.684 n=10)
EtcdSTM-4 318.4m ± 0% 319.2m ± 1% ~ (p=0.631 n=10)
GoBuildKubelet-4 157.4 ± 0% 157.6 ± 0% ~ (p=0.105 n=10)
GoBuildKubeletLink-4 12.42 ± 2% 12.41 ± 1% ~ (p=0.529 n=10)
GoBuildIstioctl-4 124.4 ± 0% 124.4 ± 0% ~ (p=0.579 n=10)
GoBuildIstioctlLink-4 8.700 ± 1% 8.693 ± 1% ~ (p=0.912 n=10)
GoBuildFrontend-4 46.52 ± 0% 46.50 ± 0% ~ (p=0.971 n=10)
GoBuildFrontendLink-4 2.282 ± 1% 2.272 ± 1% ~ (p=0.529 n=10)
GoBuildTsgo-4 75.02 ± 1% 75.31 ± 1% ~ (p=0.436 n=10)
GoBuildTsgoLink-4 1.229 ± 1% 1.219 ± 1% -0.82% (p=0.035 n=10)
GopherLuaKNucleotide-4 34.77 ± 5% 34.31 ± 1% -1.33% (p=0.015 n=10)
MarkdownRenderXHTML-4 286.6m ± 0% 285.7m ± 1% ~ (p=0.315 n=10)
Tile38QueryLoad-4 657.2µ ± 1% 660.3µ ± 0% ~ (p=0.436 n=10)
geomean 2.570 2.563 -0.24%
Executable Old .text New .text Change
-------------------------------------------------------
benchmark 6504820 6504020 -0.01%
bleve-index-bench 3903860 3903636 -0.01%
esbuild 4801012 4801172 +0.00%
esbuild-bench 1256404 1256340 -0.01%
etcd 9188148 9187076 -0.01%
etcd-bench 6462228 6461524 -0.01%
go 5924468 5923892 -0.01%
go-build-bench 1282004 1281940 -0.00%
gopher-lua-bench 1639540 1639348 -0.01%
markdown-bench 1478452 1478356 -0.01%
tile38-bench 2753524 2753300 -0.01%
tile38-server 10241380 10240068 -0.01%
Change-Id: Ieb4fdfd656aca458f65fc45938de70550632bd13
Reviewed-on: https://go-review.googlesource.com/c/go/+/698097
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>
Reviewed-by: Mark Freeman <markfreeman@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Diffstat (limited to 'test/codegen/strings.go')
0 files changed, 0 insertions, 0 deletions
