summaryrefslogtreecommitdiff
path: root/test/init.go
diff options
context:
space:
mode:
authorphilhofer <phofer@umich.edu>2017-03-04 16:17:12 -0800
committerBrad Fitzpatrick <bradfitz@golang.org>2017-03-06 23:47:59 +0000
commita6bd42f2630aa8907009a1ec0c35048c20a7afae (patch)
treea6c042103665723ba02676cd63b6bcf4e24d04e0 /test/init.go
parentcd6f18779fd0c8be723d6eb1f1891796bfe98aa3 (diff)
downloadgo-git-a6bd42f2630aa8907009a1ec0c35048c20a7afae.tar.gz
cmd/compile: emit OffPtr for first field in SSA'd structs
Given (Store [c] (OffPtr <T1> [0] (Addr <T> _)) _ (Store [c] (Addr <T> _) _ _)) dead store elimination doesn't eliminate the inner Store, because it addresses a type of a different width than the first store. When decomposing StructMake operations, always generate an OffPtr to address struct fields so that dead stores to the first field of the struct can be optimized away. benchmarks affected on darwin/amd64: HTTPClientServer-8 73.2µs ± 1% 72.7µs ± 1% -0.69% (p=0.022 n=9+10) TimeParse-8 304ns ± 1% 300ns ± 0% -1.61% (p=0.000 n=9+9) RegexpMatchEasy1_32-8 80.1ns ± 0% 79.5ns ± 1% -0.84% (p=0.000 n=8+9) GobDecode-8 6.78ms ± 0% 6.81ms ± 1% +0.46% (p=0.000 n=9+10) Gunzip-8 36.1ms ± 1% 36.2ms ± 0% +0.37% (p=0.019 n=10+10) JSONEncode-8 15.6ms ± 0% 15.7ms ± 0% +0.69% (p=0.000 n=9+10) Change-Id: Ia80d73fd047f9400c616ca64fdee4f438a0e7f21 Reviewed-on: https://go-review.googlesource.com/37769 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'test/init.go')
0 files changed, 0 insertions, 0 deletions