1
0
mirror of https://github.com/golang/go synced 2024-10-05 09:11:21 -06:00
go/src/cmd/6g
Russ Cox 92dba0d278 cmd/internal/gc: use hardware instruction for math.Sqrt (amd64/arm)
I first prototyped this change in Sept 2011, and I discarded it
because it made no difference in the obvious benchmark loop.
It still makes no difference in the obvious benchmark loop,
but in a less obvious one, doing some extra computation
around the calls to Sqrt, not making the call does have a
significant effect.

benchmark                 old ns/op     new ns/op     delta
BenchmarkSqrt             4.56          4.57          +0.22%
BenchmarkSqrtIndirect     4.56          4.56          +0.00%
BenchmarkSqrtGo           69.4          69.4          +0.00%
BenchmarkSqrtPrime        4417          3647          -17.43%

This is a warmup for using hardware expansions for some
calls to 1-line assembly routines in the runtime (for example getg).

Change-Id: Ie66be23f8c09d0f7dc4ddd7ca8a93cfce28f55a4
Reviewed-on: https://go-review.googlesource.com/8356
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-04-03 16:13:36 +00:00
..
cgen.go cmd/internal/gc: move cgen, regalloc, et al to portable code 2015-03-20 20:03:52 +00:00
galign.go cmd/6g: fix build for nacl/amd64p32 2015-03-24 23:57:50 +00:00
gg.go [dev.cc] cmd/6a, cmd/6g etc: replace C implementations with Go implementations 2015-02-23 19:56:40 +00:00
ggen.go cmd/internal/gc: unembed Node.Func 2015-04-01 18:21:22 +00:00
gsubr.go cmd/internal/gc: use hardware instruction for math.Sqrt (amd64/arm) 2015-04-03 16:13:36 +00:00
peep.go cmd/internal/gc: increase registerization limits 2015-03-20 04:56:44 +00:00
prog.go cmd/internal/gc: use hardware instruction for math.Sqrt (amd64/arm) 2015-04-03 16:13:36 +00:00
reg.go cmd/6g: make proginfo register bits constants 2015-03-17 01:24:40 +00:00
util.go [dev.cc] cmd/6a, cmd/6g etc: replace C implementations with Go implementations 2015-02-23 19:56:40 +00:00