go/src/cmd/compile/internal/gc
David Chase 8eec2bbfbc cmd/compile: added some intrinsics to SSA back end
One intrinsic was needed to help get the very best
performance out of a future GC; as long as that one was
being added, I also added Bswap since that is sometimes
a handy thing to have.  I had intended to fill out the
bit-scan intrinsic family, but the mismatch between the
"scan forward" instruction and "count leading zeroes"
was large enough to cause me to leave it out -- it poses
a dilemma that I'd rather dodge right now.

These intrinsics are not exposed for general use.
That's a separate issue requiring an API proposal change
( https://github.com/golang/proposal )

All intrinsics are tested, both that they are substituted
on the appropriate architecture, and that they produce the
expected result.

Change-Id: I5848037cfd97de4f75bdc33bdd89bba00af4a8ee
Reviewed-on: https://go-review.googlesource.com/20564
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-03-28 16:29:59 +00:00
..
builtin cmd/compile, runtime: eliminate growslice_n 2016-03-13 23:34:31 +00:00
testdata cmd/compile: don't write back unchanged slice results 2016-03-21 23:40:18 +00:00
alg.go cmd/compile: reduce slice header allocation when parsing := assignments 2016-03-25 23:09:19 +00:00
align.go cmd/compile: eliminate a bunch of IterFields/IterMethods calls 2016-03-17 19:38:15 +00:00
bexport.go cmd/compile: rename T_old_DARRAY and update comments 2016-03-27 20:38:56 +00:00
bimport.go cmd/compile: rename T_old_DARRAY and update comments 2016-03-27 20:38:56 +00:00
builtin.go cmd/compile, runtime: eliminate growslice_n 2016-03-13 23:34:31 +00:00
builtin_test.go cmd/compile: refresh builtin.go 2016-02-19 19:08:47 +00:00
bv.go cmd/compile/internal/gc: tidy plive.go 2016-03-15 15:27:21 +00:00
cgen.go cmd/compile: minor cleanups 2016-03-24 11:18:04 +00:00
closure.go cmd/compile: reduce stutter 2016-03-24 01:17:23 +00:00
const.go cmd/compile/internal/gc: remove remaining Nod(OXXX, ...) 2016-03-24 01:21:51 +00:00
cplx.go cmd/compile: change Oconv to take an Op parameter 2016-03-07 17:27:05 +00:00
dcl.go cmd/compile: reduce slice header allocation when parsing := assignments 2016-03-25 23:09:19 +00:00
esc.go cmd/compile: clear OTFUNC info when converting to OTYPE 2016-03-28 14:10:21 +00:00
export.go cmd/compile/internal/gc: remove remaining Nod(OXXX, ...) 2016-03-24 01:21:51 +00:00
float_test.go cmd/compile: stop using fucomi* ops for 387 builds 2016-01-13 16:23:13 +00:00
fmt.go cmd/compile: allow inlining of functions with switch statements 2016-03-21 23:05:10 +00:00
gen.go cmd/compile/internal/gc: remove remaining Nod(OXXX, ...) 2016-03-24 01:21:51 +00:00
global_test.go all: single space after period. 2016-03-02 00:13:47 +00:00
go.go cmd/compile: added some intrinsics to SSA back end 2016-03-28 16:29:59 +00:00
gsubr.go cmd/compile: change Mp{int,flt} functions into methods 2016-03-21 17:25:50 +00:00
init.go cmd/compile: reduce use of **Node parameters 2016-03-22 14:11:36 +00:00
inl.go cmd/compile: added some intrinsics to SSA back end 2016-03-28 16:29:59 +00:00
lex.go cmd/compile: minor cleanups 2016-03-24 11:18:04 +00:00
magic.go cmd/compile: give "magic" code its own source file 2016-03-11 09:09:33 +00:00
main.go cmd/compile: prettify loop iterations 2016-03-23 22:49:49 +00:00
mkbuiltin.go cmd/compile/internal/gc: export & import function bodies, but don't hook up 2016-03-02 22:26:40 +00:00
mpfloat.go cmd/compile: special-case const comparisons against zero 2016-03-21 17:58:21 +00:00
mpint.go cmd/compile: small Mpint method simplifications 2016-03-23 19:22:53 +00:00
obj.go cmd/compile: change Mp{int,flt} functions into methods 2016-03-21 17:25:50 +00:00
opnames.go [dev.ssa] Merge remote-tracking branch 'origin/master' into mergebranch 2016-02-10 09:31:41 -08:00
order.go cmd/compile: fix stringtoslicebytetmp optimization 2016-03-27 19:12:37 +00:00
parser.go cmd/compile: reduce slice header allocation when parsing := assignments 2016-03-25 23:09:19 +00:00
pgen.go cmd/compile: reduce use of **Node parameters 2016-03-22 14:11:36 +00:00
pgen_test.go cmd/compile: remove NodeList type 2016-03-10 18:22:07 +00:00
plive.go cmd/compile: don’t generate Nodes for PCDATA 2016-03-26 01:36:03 +00:00
popt.go cmd: collapse internal/obj/fmt.go into compile/internal/gc/fmt.go 2016-03-15 22:08:05 +00:00
racewalk.go cmd/compile/internal/gc: remove remaining Nod(OXXX, ...) 2016-03-24 01:21:51 +00:00
range.go cmd/compile: reduce use of **Node parameters 2016-03-22 14:11:36 +00:00
reflect.go cmd/compile: avoid pointers in go.string.* symbols 2016-03-25 16:38:46 +00:00
reflect_test.go cmd/compile/internal/gc: use sort.Interface for reflect methods 2015-09-21 22:27:53 +00:00
reg.go cmd/compile: minor cleanups 2016-03-24 11:18:04 +00:00
select.go cmd/compile: reduce use of **Node parameters 2016-03-22 14:11:36 +00:00
sinit.go cmd/compile: minor cleanups 2016-03-24 11:18:04 +00:00
sizeof_test.go cmd/compile: get rid of Type's {This,In,Out}tuple fields 2016-03-17 19:38:30 +00:00
ssa.go cmd/compile: added some intrinsics to SSA back end 2016-03-28 16:29:59 +00:00
ssa_test.go cmd/compile: don't write back unchanged slice results 2016-03-21 23:40:18 +00:00
subr.go cmd/compile/internal/gc: remove remaining Nod(OXXX, ...) 2016-03-24 01:21:51 +00:00
swt.go cmd/compile: reduce use of **Node parameters 2016-03-22 14:11:36 +00:00
swt_test.go cmd/compile/internal/gc: remove stringsCompare 2015-09-29 07:13:30 +00:00
syntax.go cmd/compile: avoid allocating a Nodes for readonly method receivers 2016-03-24 16:52:19 +00:00
type.go cmd/compile: rename T_old_DARRAY and update comments 2016-03-27 20:38:56 +00:00
typecheck.go cmd/compile: clear OTFUNC info when converting to OTYPE 2016-03-28 14:10:21 +00:00
universe.go cmd/compile: change Mp{int,flt} functions into methods 2016-03-21 17:25:50 +00:00
unsafe.go cmd/compile: reduce use of **Node parameters 2016-03-22 14:11:36 +00:00
util.go cmd/compile: add copyright notice to util.go 2016-02-23 10:49:47 +00:00
walk.go cmd/compile: don’t generate a new Node for convas 2016-03-26 23:13:32 +00:00