]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile: use shorter ANDL/TESTL if upper 32 bits are known to be zero
authorJakub Ciolek <jakub@ciolek.dev>
Fri, 25 Aug 2023 09:02:01 +0000 (11:02 +0200)
committerGopher Robot <gobot@golang.org>
Mon, 28 Aug 2023 17:25:18 +0000 (17:25 +0000)
commitc1dfbf72e1298df8495171810a553836e5027f98
tree823e3a7668a981b01df3c987e27fb02b684459f1
parent0d69747d91071be62f2cf4759e10d56426b84b26
cmd/compile: use shorter ANDL/TESTL if upper 32 bits are known to be zero

compilecmp linux/amd64:

math/bits
math/bits.Div32 122 -> 121  (-0.82%)
math/bits.Rem32 39 -> 38  (-2.56%)

math/bits [cmd/compile]
math/bits.Rem32 39 -> 38  (-2.56%)
math/bits.Div32 122 -> 121  (-0.82%)

runtime
runtime.funcMaxSPDelta 296 -> 294  (-0.68%)
runtime.dumpGCProg 677 -> 666  (-1.62%)
runtime.(*itabTableType).find 66 -> 65  (-1.52%)
runtime.(*itabTableType).add 71 -> 70  (-1.41%)
runtime.funpack32 122 -> 121  (-0.82%)

vendor/golang.org/x/net/dns/dnsmessage
vendor/golang.org/x/net/dns/dnsmessage.(*Message).pack 211 -> 200  (-5.21%)
vendor/golang.org/x/net/dns/dnsmessage.(*Header).pack 163 -> 161  (-1.23%)
vendor/golang.org/x/net/dns/dnsmessage.NewBuilder 589 -> 581  (-1.36%)

runtime [cmd/compile]
runtime.dumpGCProg 677 -> 666  (-1.62%)
runtime.funpack32 122 -> 121  (-0.82%)
runtime.(*itabTableType).add 71 -> 70  (-1.41%)
runtime.(*itabTableType).find 66 -> 65  (-1.52%)

internal/types/errors
internal/types/errors.Code.String 666 -> 634  (-4.80%)

internal/types/errors [cmd/compile]
internal/types/errors.Code.String 666 -> 634  (-4.80%)

debug/gosym
debug/gosym.(*LineTable).stringFrom 436 -> 435  (-0.23%)

debug/dwarf
debug/dwarf.Class.String 186 -> 175  (-5.91%)

vendor/golang.org/x/text/unicode/norm
vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).runeAt 181 -> 180  (-0.55%)
vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).assignRune 222 -> 221  (-0.45%)

debug/macho
debug/macho.RelocTypeARM64.String 186 -> 175  (-5.91%)
debug/macho.RelocTypeGeneric.String 186 -> 175  (-5.91%)
debug/macho.RelocTypeX86_64.String 186 -> 175  (-5.91%)
debug/macho.RelocTypeARM.String 186 -> 175  (-5.91%)

internal/xcoff
internal/xcoff.getString 173 -> 172  (-0.58%)

debug/pe
debug/pe.StringTable.String 278 -> 277  (-0.36%)

math/big
math/big.(*Int).Int64 35 -> 34  (-2.86%)
math/big.(*Float).ord 57 -> 56  (-1.75%)
math/big.Accuracy.String 219 -> 217  (-0.91%)
math/big.(*Int).Cmp 153 -> 152  (-0.65%)

go/constant
go/constant.makeInt 155 -> 154  (-0.65%)

archive/tar
archive/tar.(*Reader).readHeader.func2 51 -> 50  (-1.96%)

crypto/rsa
crypto/rsa.VerifyPKCS1v15 1288 -> 1285  (-0.23%)
crypto/rsa.decryptPKCS1v15 495 -> 493  (-0.40%)

vendor/golang.org/x/net/idna
vendor/golang.org/x/net/idna.(*Profile).simplify 114 -> 113  (-0.88%)
vendor/golang.org/x/net/idna.validateFromPunycode 607 -> 591  (-2.64%)

encoding/asn1
encoding/asn1.parseBitString 298 -> 297  (-0.34%)

log/slog
log/slog.TextHandler.attrSep 57 -> 56  (-1.75%)
log/slog.(*handleState).appendKey 747 -> 746  (-0.13%)
log/slog.JSONHandler.attrSep 57 -> 56  (-1.75%)
log/slog.(*TextHandler).attrSep 59 -> 58  (-1.69%)
log/slog.(*JSONHandler).attrSep 59 -> 58  (-1.69%)

cmd/internal/objabi
cmd/internal/objabi.SymKind.String 219 -> 207  (-5.48%)

vendor/golang.org/x/crypto/cryptobyte
vendor/golang.org/x/crypto/cryptobyte.(*String).readLengthPrefixed 315 -> 313  (-0.63%)

cmd/internal/goobj
cmd/internal/goobj.(*FuncInfo).ReadInlTree 216 -> 215  (-0.46%)
cmd/internal/goobj.(*Reader).BytesAt 96 -> 95  (-1.04%)

html/template
html/template.state.String 219 -> 207  (-5.48%)

cmd/internal/obj
cmd/internal/obj.AddrType.String 219 -> 207  (-5.48%)

go/build
go/build.(*Context).importGo 4511 -> 4505  (-0.13%)

cmd/internal/gcprog
cmd/internal/gcprog.progbits 569 -> 549  (-3.51%)

cmd/compile/internal/base
cmd/compile/internal/base.PkgLinksym 373 -> 367  (-1.61%)

cmd/cgo
main.(*Package).writeDefsFunc 6117 -> 6085  (-0.52%)

cmd/compile/internal/types
cmd/compile/internal/types.Kind.String 219 -> 207  (-5.48%)
cmd/compile/internal/types.AlgKind.String 207 -> 201  (-2.90%)

cmd/internal/gcprog [cmd/compile]
cmd/internal/gcprog.progbits 569 -> 549  (-3.51%)

crypto/tls
crypto/tls.CurveID.String 273 -> 265  (-2.93%)

cmd/internal/objabi [cmd/compile]
cmd/internal/objabi.SymKind.String 219 -> 207  (-5.48%)

cmd/internal/goobj [cmd/compile]
cmd/internal/goobj.(*FuncInfo).ReadInlTree 216 -> 215  (-0.46%)
cmd/internal/goobj.(*Reader).BytesAt 96 -> 95  (-1.04%)

math/big [cmd/compile]
math/big.(*Float).ord 57 -> 56  (-1.75%)
math/big.(*Int).Cmp 153 -> 152  (-0.65%)
math/big.(*Int).Int64 35 -> 34  (-2.86%)
math/big.Accuracy.String 219 -> 217  (-0.91%)

go/constant [cmd/compile]
go/constant.makeInt 155 -> 154  (-0.65%)

cmd/internal/obj [cmd/compile]
cmd/internal/obj.AddrType.String 219 -> 207  (-5.48%)

cmd/link/internal/sym
cmd/link/internal/sym.SymKind.String 219 -> 207  (-5.48%)

cmd/compile/internal/base [cmd/compile]
cmd/compile/internal/base.PkgLinksym 317 -> 315  (-0.63%)

go/build [cmd/compile]
go/build.(*Context).importGo 4511 -> 4505  (-0.13%)

cmd/go/internal/script
cmd/go/internal/script.(*Engine).ListCmds 1269 -> 1263  (-0.47%)

cmd/go/internal/modindex
cmd/go/internal/modindex.fromBytes 1206 -> 1199  (-0.58%)
cmd/go/internal/modindex.(*decoder).boolAt 212 -> 201  (-5.19%)
cmd/go/internal/modindex.(*reader).bool 229 -> 218  (-4.80%)

cmd/link/internal/loader
cmd/link/internal/loader.(*FuncInfo).File 142 -> 141  (-0.70%)

cmd/compile/internal/types [cmd/compile]
cmd/compile/internal/types.Kind.String 219 -> 207  (-5.48%)
cmd/compile/internal/types.(*Sym).LinksymABI 333 -> 332  (-0.30%)
cmd/compile/internal/types.AlgKind.String 207 -> 201  (-2.90%)

cmd/link/internal/loadmacho
cmd/link/internal/loadmacho.macholoadsym 1243 -> 1236  (-0.56%)

cmd/vendor/golang.org/x/sys/unix
cmd/vendor/golang.org/x/sys/unix.(*FileHandle).Bytes 80 -> 79  (-1.25%)
cmd/vendor/golang.org/x/sys/unix.Mkdev 54 -> 52  (-3.70%)

cmd/go/internal/work
cmd/go/internal/work.(*Builder).printLinkerConfig 1865 -> 1864  (-0.05%)

cmd/go/internal/run
cmd/go/internal/run.runRun 3197 -> 3182  (-0.47%)

cmd/compile/internal/ssa [cmd/compile]
cmd/compile/internal/ssa.rewriteValueAMD64 21221 -> 19514  (-8.04%)

file                                       before   after    Δ       %
math/bits.s                                2373     2371     -2      -0.084%
math/bits [cmd/compile].s                  2373     2371     -2      -0.084%
runtime.s                                  520472   520467   -5      -0.001%
vendor/golang.org/x/net/dns/dnsmessage.s   74378    74357    -21     -0.028%
runtime [cmd/compile].s                    582206   582203   -3      -0.001%
internal/types/errors.s                    750      718      -32     -4.267%
internal/types/errors [cmd/compile].s      750      718      -32     -4.267%
debug/gosym.s                              34742    34741    -1      -0.003%
debug/dwarf.s                              113249   113238   -11     -0.010%
vendor/golang.org/x/text/unicode/norm.s    62802    62800    -2      -0.003%
debug/macho.s                              29021    28977    -44     -0.152%
internal/xcoff.s                           17911    17910    -1      -0.006%
debug/pe.s                                 23421    23420    -1      -0.004%
math/big.s                                 163522   163517   -5      -0.003%
go/constant.s                              28512    28511    -1      -0.004%
archive/tar.s                              58377    58376    -1      -0.002%
crypto/rsa.s                               26261    26256    -5      -0.019%
vendor/golang.org/x/net/idna.s             21342    21325    -17     -0.080%
encoding/asn1.s                            45357    45356    -1      -0.002%
log/slog.s                                 78618    78613    -5      -0.006%
cmd/internal/objabi.s                      15878    15866    -12     -0.076%
vendor/golang.org/x/crypto/cryptobyte.s    30577    30575    -2      -0.007%
cmd/internal/goobj.s                       11515    11513    -2      -0.017%
html/template.s                            87816    87804    -12     -0.014%
cmd/internal/obj.s                         124786   124774   -12     -0.010%
go/build.s                                 67665    67659    -6      -0.009%
cmd/internal/gcprog.s                      5856     5836     -20     -0.342%
cmd/compile/internal/base.s                41802    41796    -6      -0.014%
cmd/internal/obj/arm64.s                   144141   144172   +31     +0.022%
cmd/cgo.s                                  197681   197649   -32     -0.016%
cmd/compile/internal/types.s               62811    62793    -18     -0.029%
cmd/internal/gcprog [cmd/compile].s        5856     5836     -20     -0.342%
crypto/tls.s                               318862   318854   -8      -0.003%
cmd/internal/objabi [cmd/compile].s        15887    15875    -12     -0.076%
cmd/internal/goobj [cmd/compile].s         11596    11594    -2      -0.017%
math/big [cmd/compile].s                   165178   165173   -5      -0.003%
go/constant [cmd/compile].s                29743    29742    -1      -0.003%
cmd/internal/obj [cmd/compile].s           165646   165634   -12     -0.007%
cmd/link/internal/sym.s                    1829     1817     -12     -0.656%
cmd/compile/internal/base [cmd/compile].s  41937    41935    -2      -0.005%
go/build [cmd/compile].s                   67601    67595    -6      -0.009%
cmd/go/internal/script.s                   79959    79953    -6      -0.008%
cmd/go/internal/modindex.s                 85936    85907    -29     -0.034%
cmd/internal/obj/arm64 [cmd/compile].s     144090   144121   +31     +0.022%
cmd/link/internal/loader.s                 77864    77863    -1      -0.001%
cmd/compile/internal/types [cmd/compile].s 76072    76053    -19     -0.025%
cmd/link/internal/loadmacho.s              20367    20360    -7      -0.034%
cmd/vendor/golang.org/x/sys/unix.s         118027   118024   -3      -0.003%
cmd/go/internal/work.s                     285265   285264   -1      -0.000%
cmd/go/internal/run.s                      4758     4743     -15     -0.315%
cmd/compile/internal/ssa.s                 3191919  3192241  +322    +0.010%
cmd/compile/internal/ssa [cmd/compile].s   3362994  3361609  -1385   -0.041%
total                                      30756856 30755380 -1476   -0.005%

Change-Id: Ia259c87216af6ff67efe33c7d39f3dbde7f37a43
Reviewed-on: https://go-review.googlesource.com/c/go/+/522975
Auto-Submit: Keith Randall <khr@golang.org>
Run-TryBot: Jakub Ciolek <jakub@ciolek.dev>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Joedian Reid <joedian@golang.org>
src/cmd/compile/internal/ssa/_gen/AMD64.rules
src/cmd/compile/internal/ssa/rewriteAMD64.go