]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: omit racefuncentry/exit when they are not needed
authorIlya Tocar <ilya.tocar@intel.com>
Wed, 27 Jun 2018 16:40:24 +0000 (11:40 -0500)
committerIlya Tocar <ilya.tocar@intel.com>
Mon, 20 Aug 2018 22:07:22 +0000 (22:07 +0000)
commit4201c2077ec3446a4fea5ed768c82aa96df69233
tree24096efa6587c90599d2cfd1512cdf6fa36c3efb
parentf76eaeb2c840c76c48dc53b834e9a0e005a70421
cmd/compile: omit racefuncentry/exit when they are not needed

When compiling with -race, we insert calls to racefuncentry,
into every function. Add a rule that removes them in leaf functions,
without instrumented loads/stores.
Shaves ~30kb from "-race" version of go tool:

file difference:
go_old 15626192
go_new 15597520 [-28672 bytes]

section differences:
global text (code) = -24513 bytes (-0.358598%)
read-only data = -5849 bytes (-0.167064%)
Total difference -30362 bytes (-0.097928%)

Fixes #24662

Change-Id: Ia63bf1827f4cf2c25e3e28dcd097c150994ade0a
Reviewed-on: https://go-review.googlesource.com/121235
Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/gc/racewalk.go
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/ssa/config.go
src/cmd/compile/internal/ssa/gen/generic.rules
src/cmd/compile/internal/ssa/rewrite.go
src/cmd/compile/internal/ssa/rewritegeneric.go