]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/compile: use string contents instead of offset from string header
authorJosh Bleecher Snyder <josharian@gmail.com>
Fri, 24 Jul 2015 18:28:12 +0000 (11:28 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Fri, 24 Jul 2015 20:43:32 +0000 (20:43 +0000)
commit8d31df18afd682b8440f3ea82033c01b144c65c8
treed0fb594670d5d75682212725fceec0e7a73734cf
parentd90e0481bf0c2f5ba13ed0ae1872b223f0c5ce9c
[dev.ssa] cmd/compile: use string contents instead of offset from string header

This generates more efficient code.

Before:

0x003a 00058 (rr.go:7) LEAQ go.string.hdr."="(SB), BX
0x0041 00065 (rr.go:7) LEAQ 16(BX), BP
0x0045 00069 (rr.go:7) MOVQ BP, 16(SP)

After:

0x003a 00058 (rr.go:7) LEAQ go.string."="(SB), BX
0x0041 00065 (rr.go:7) MOVQ BX, 16(SP)

It also matches the existing backend
and is more robust to other changes,
such as CL 11698, which I believe broke
the current code.

This CL fixes the encoding/base64 tests, as run with:

GOGC=off GOSSAPKG=base64 go test -a encoding/base64

Change-Id: I3c475bed1dd3335cc14e13309e11d23f0ed32c17
Reviewed-on: https://go-review.googlesource.com/12654
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/ssa/config.go
src/cmd/compile/internal/ssa/export_test.go
src/cmd/compile/internal/ssa/gen/generic.rules
src/cmd/compile/internal/ssa/rewritegeneric.go