Skip to content

Commit

Permalink
cmd/compile: mark booleans as registerizable
Browse files Browse the repository at this point in the history
Boolean values fit in registers, mark them accordingly. Improves codegen a bit.

compilecmp for darwin/amd64:

compress/gzip
compress/gzip.(*Reader).Reset 1017 -> 985  (-3.15%)

net
net.newRequest 1002 -> 970  (-3.19%)

crypto/tls
crypto/tls.(*sessionState).unmarshal 1054 -> 968  (-8.16%)

cmd/compile/internal/syntax
cmd/compile/internal/syntax.Fprint 518 -> 453  (-12.55%)

cmd/vendor/github.com/ianlancetaylor/demangle
cmd/vendor/github.com/ianlancetaylor/demangle.ASTToString 389 -> 325  (-16.45%)

cmd/go/internal/load
cmd/go/internal/load.PackagesAndErrors 3453 -> 3381  (-2.09%)

cmd/compile/internal/ssa
cmd/compile/internal/ssa.registerizable 249 -> 255  (+2.41%)

cmd/compile/internal/ssagen
cmd/compile/internal/ssagen.buildssa 9388 -> 9356  (-0.34%)

file                                            before   after    Δ       %
compress/gzip.s                                 8247     8215     -32     -0.388%
net.s                                           266667   266635   -32     -0.012%
crypto/tls.s                                    290324   290238   -86     -0.030%
cmd/compile/internal/syntax.s                   156422   156357   -65     -0.042%
cmd/vendor/github.com/ianlancetaylor/demangle.s 268313   268249   -64     -0.024%
cmd/go/internal/load.s                          122946   122874   -72     -0.059%
cmd/compile/internal/ssa.s                      3551201  3551207  +6      +0.000%
cmd/compile/internal/ssagen.s                   362299   362267   -32     -0.009%
total                                           19725872 19725495 -377    -0.002%

Change-Id: I4cd40b54d8b2da6d1f946e51f16689315a369dca
Reviewed-on: https://go-review.googlesource.com/c/go/+/408474
Run-TryBot: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
  • Loading branch information
jake-ciolek authored and dr2chase committed Aug 23, 2022
1 parent 6985ab2 commit de561dc
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/cmd/compile/internal/ssa/rewrite.go
Original file line number Diff line number Diff line change
Expand Up @@ -1632,7 +1632,7 @@ func sizeof(t interface{}) int64 {
// a register. It assumes float64 values will always fit into registers
// even if that isn't strictly true.
func registerizable(b *Block, typ *types.Type) bool {
if typ.IsPtrShaped() || typ.IsFloat() {
if typ.IsPtrShaped() || typ.IsFloat() || typ.IsBoolean() {
return true
}
if typ.IsInteger() {
Expand Down

0 comments on commit de561dc

Please sign in to comment.