go/src/cmd/compile/internal/ssa/gen
Ilya Tocar 94484d8ed5 cmd/compile: intrinsify math.{Trunc/Ceil/Floor} on amd64
This significantly speed-ups Trunc.
Ceil/Floor are using the same instruction, so do them too.

name     old time/op  new time/op  delta
Floor-6  3.33ns ± 1%  3.22ns ± 0%   -3.39%  (p=0.000 n=10+10)
Ceil-6   3.33ns ± 1%  3.22ns ± 0%   -3.16%  (p=0.000 n=10+7)
Trunc-6  4.83ns ± 0%  3.22ns ± 0%  -33.36%  (p=0.000 n=6+8)

Change-Id: If848790e458eedfe38a6a0407bb4f589c68ac254
Reviewed-on: https://go-review.googlesource.com/68630
Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
2017-10-31 19:30:54 +00:00
..
386.rules cmd/compile: intrinsify runtime.getcallersp 2017-10-10 15:15:21 +00:00
386Ops.go cmd/compile: mark LoweredGetCallerPC rematerializeable 2017-10-14 00:53:20 +00:00
AMD64.rules cmd/compile: intrinsify math.{Trunc/Ceil/Floor} on amd64 2017-10-31 19:30:54 +00:00
AMD64Ops.go cmd/compile: intrinsify math.{Trunc/Ceil/Floor} on amd64 2017-10-31 19:30:54 +00:00
ARM.rules cmd/compile: optimize ARM code with CMN/TST/TEQ 2017-10-11 14:03:00 +00:00
ARM64.rules cmd/compile: intrinsify runtime.getcallersp 2017-10-10 15:15:21 +00:00
ARM64Ops.go cmd/compile: intrinsify runtime.getcallersp 2017-10-10 15:15:21 +00:00
ARMOps.go cmd/compile: optimize ARM code with CMN/TST/TEQ 2017-10-11 14:03:00 +00:00
MIPS.rules cmd/compile: intrinsify runtime.getcallersp 2017-10-10 15:15:21 +00:00
MIPS64.rules cmd/compile: intrinsify atomics on MIPS64 2017-10-10 19:43:38 +00:00
MIPS64Ops.go cmd/compile: intrinsify atomics on MIPS64 2017-10-10 19:43:38 +00:00
MIPSOps.go cmd/compile: intrinsify runtime.getcallersp 2017-10-10 15:15:21 +00:00
PPC64.rules cmd/compile: don't fold address of global into load/store on PPC64 2017-10-31 18:43:11 +00:00
PPC64Ops.go cmd/compile,cmd/internal/obj/ppc64: make math.Abs,math.Copysign instrinsics on ppc64x 2017-10-30 13:56:39 +00:00
README
S390X.rules cmd/compile: intrinsify math.RoundToEven on s390x 2017-10-31 18:04:27 +00:00
S390XOps.go cmd/asm, cmd/compile: optimize math.Abs and math.Copysign on s390x 2017-10-30 23:42:51 +00:00
dec.rules cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
dec64.rules cmd/compile: change ssa.Type into *types.Type 2017-05-09 23:01:51 +00:00
dec64Ops.go
decOps.go
generic.rules cmd/compile: optimize signed non-negative div/mod by a power of 2 2017-10-06 15:15:39 +00:00
genericOps.go cmd/compile: intrinsify math.RoundToEven on s390x 2017-10-31 18:04:27 +00:00
main.go cmd/compile: stop rematerializable ops from clobbering flags 2017-09-20 17:10:58 +00:00
rulegen.go all: revert "all: prefer strings.IndexByte over strings.Index" 2017-10-05 23:19:10 +00:00

README

// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

This package generates opcode tables, rewrite rules, etc. for the ssa compiler.
Run it with:
   go run *.go