cmd/gc, runtime: pass PC directly to racefuncenter.
go test -race -run none -bench . encoding/json
benchmark old ns/op new ns/op delta
BenchmarkCodeEncoder
3207689000 1716149000 -46.50%
BenchmarkCodeMarshal
3206761000 1715677000 -46.50%
BenchmarkCodeDecoder
8647304000 4482709000 -48.16%
BenchmarkCodeUnmarshal
8032217000 3451248000 -57.03%
BenchmarkCodeUnmarshalReuse
8016722000 3480502000 -56.58%
BenchmarkSkipValue
10340453000 4560313000 -55.90%
benchmark old MB/s new MB/s speedup
BenchmarkCodeEncoder 0.60 1.13 1.88x
BenchmarkCodeMarshal 0.61 1.13 1.85x
BenchmarkCodeDecoder 0.22 0.43 1.95x
BenchmarkCodeUnmarshal 0.24 0.56 2.33x
BenchmarkCodeUnmarshalReuse 0.24 0.56 2.33x
BenchmarkSkipValue 0.19 0.44 2.32x
Fixes #4248.
R=dvyukov, golang-dev, rsc
CC=golang-dev
https://golang.org/cl/
6815066