1
0
mirror of https://github.com/golang/go synced 2024-09-24 09:30:13 -06:00
go/test
Martin Möhrmann cbc4e5d9c4 cmd/compile: generate makemap calls with int arguments
Where possible generate calls to runtime makemap with int hint argument
during compile time instead of makemap with int64 hint argument.

This eliminates converting the hint argument for calls to makemap with
int64 hint argument for platforms where int64 values do not fit into
an argument of type int.

A similar optimization for makeslice was introduced in CL
golang.org/cl/27851.

386:
name         old time/op    new time/op    delta
NewEmptyMap    53.5ns ± 5%    41.9ns ± 5%  -21.56%  (p=0.000 n=10+10)
NewSmallMap     182ns ± 1%     165ns ± 1%   -8.92%  (p=0.000 n=10+10)

Change-Id: Ibd2b4c57b36f171b173bf7a0602b3a59771e6e44
Reviewed-on: https://go-review.googlesource.com/55142
Reviewed-by: Keith Randall <khr@golang.org>
2017-08-22 20:28:21 +00:00
..
alias3.dir [dev.typealias] cmd/compile: export/import test cases for type aliases 2017-01-20 05:55:53 +00:00
bench test/bench/go1: fix typo in parserdata_test.go comment 2017-03-22 03:23:16 +00:00
chan test: deflake chan/select3.go 2017-07-08 02:10:12 +00:00
ddd2.dir all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
dwarf
fixedbugs cmd/compile: avoid duplicate cast error 2017-08-22 13:44:35 +00:00
import2.dir all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
import4.dir test: adjust gccgo expected import errors 2015-10-07 14:37:44 +00:00
interface cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
intrinsic.dir cmd/compile: intrinsics for math/bits.TrailingZerosX 2017-03-16 02:44:16 +00:00
ken all: fix spelling mistakes 2016-04-03 17:03:15 +00:00
linkname.dir cmd/compile: include linknames in export data 2017-02-08 20:59:45 +00:00
method4.dir
safe
stress all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
syntax cmd/compile/internal/parser: improved a couple of error messages 2017-02-24 18:54:36 +00:00
uintptrescapes.dir cmd/compile, syscall: add //go:uintptrescapes comment, and use it 2016-07-06 20:48:41 +00:00
64bit.go
235.go
alg.go test: add test that required algs get generated 2016-04-24 21:36:52 +00:00
alias1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
alias2.go [dev.typealias] cmd/compile: declare methods after resolving receiver type 2017-01-25 08:04:17 +00:00
alias3.go [dev.typealias] cmd/compile: export/import test cases for type aliases 2017-01-20 05:55:53 +00:00
alias.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
append1.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
append.go
args.go
armimm.go cmd/internal/obj: continue to optimize ARM's constant pool 2017-05-11 13:53:54 +00:00
assign1.go
assign.go cmd/gc: prohibit short variable declarations containing duplicate symbols 2014-10-06 17:16:39 -04:00
atomicload.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
bigalg.go
bigmap.go
blank1.go cmd/compile: don't allow blank method declarations on builtins 2015-12-02 18:26:38 +00:00
blank.go
bom.go
bombad.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
bounds.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
chancap.go cmd/compile: generate makechan calls with int arguments 2017-08-15 05:54:24 +00:00
chanlinear.go runtime: test for linear enqueue/dequeue behavior 2014-12-08 22:18:17 +00:00
char_lit1.go
char_lit.go
checkbce.go test: add missing copyright header to checkbce.go 2017-05-18 00:05:25 +00:00
clearfat.go [dev.power64] 9g: fix under-zeroing in clearfat 2014-10-31 11:08:27 -04:00
closedchan.go
closure1.go cmd/gc: capture variables by value 2015-01-29 13:07:30 +00:00
closure2.go cmd/gc: fix capturing by value for range statements 2015-02-03 15:48:48 +00:00
closure.go
cmp6.go
cmp.go Fix several out of date references to 4g/5g/6g/8g/9g. 2015-06-26 03:38:21 +00:00
cmplx.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
cmplxdivide1.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
cmplxdivide.c runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
cmplxdivide.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
complit1.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
complit.go
compos.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
const1.go
const2.go
const3.go
const4.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
const5.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
const6.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
const.go cmd/compile: fix compiler bug for constant equality comparison 2016-09-17 01:12:24 +00:00
convert1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
convert2.go cmd/compile: ignore struct tags when converting structs 2016-10-04 17:10:47 +00:00
convert3.go
convert.go
convlit1.go
convlit.go cmd/internal/gc: unsafe.Pointer constants may only be converted to uintptr 2015-05-07 23:54:28 +00:00
convT2X.go
copy1.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
copy.go
crlf.go
ddd1.go test: reenable ... test 2017-08-11 17:41:17 +00:00
ddd2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
ddd.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
decl.go
declbad.go
defer.go
deferfin.go
deferprint.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
deferprint.out
devirt.go cmd/compile: de-virtualize interface calls 2017-03-14 18:49:23 +00:00
divide.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
divmod.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
empty.go
env.go
eof1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
eof.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
errchk cmd/vet: make checking example names in _test packages more robust 2016-06-28 22:09:00 +00:00
escape2.go test: add missing escape analysis test 2017-08-11 00:56:21 +00:00
escape2n.go test: add missing escape analysis test 2017-08-11 00:56:21 +00:00
escape3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape4.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape5.go cmd/compile: unnamed parameters do not escape 2017-03-24 17:14:00 +00:00
escape_array.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_because.go cmd/compile: add explicit 'where' to EscStep data for explanations 2016-10-26 18:46:59 +00:00
escape_calls.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_closure.go cmd/compile/internal/syntax: establish principled position information 2017-02-15 01:33:03 +00:00
escape_field.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_iface.go cmd/compile: avoid leak of dottype expression on double assignment form 2016-10-10 12:09:16 +00:00
escape_indir.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_level.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_map.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_param.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_slice.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_struct_param1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_struct_param2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape_struct_return.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape.go
fibo.go Fix whitespace (use blanks consistently). 2014-12-08 22:22:58 +00:00
finprofiled.go runtime: fix finalization and profiling of tiny allocations 2015-11-03 18:57:18 +00:00
float_lit2.go test/float_lit2: fix expressions in comment 2016-09-14 16:39:47 +00:00
float_lit3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
float_lit.go
floatcmp.go
for.go
func1.go
func2.go
func3.go
func4.go
func5.go
func6.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
func7.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
func8.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
func.go
funcdup2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
funcdup.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
gc1.go
gc2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
gc.go
gcstring.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
goprint.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
goprint.out
goto.go cmd/compile: report block start for gotos jumping into blocks 2017-04-19 02:27:58 +00:00
heapsampling.go test: really force heap profile update in heapsampling.go 2015-11-12 18:32:13 +00:00
helloworld.go
helloworld.out
if.go
import1.go
import2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
import4.go
import5.go cmd/compile: be slightly more tolerant in case of certain syntax errors 2017-03-24 20:07:15 +00:00
import6.go cmd/compile/internal/syntax: removed gcCompat code needed to pass orig. tests 2017-02-10 01:22:30 +00:00
import.go
index0.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
index1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
index2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
index.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
indirect1.go
indirect.go
init1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
init.go Revert "cmd/compile: improve error message if init is directly invoked" 2017-03-06 23:48:37 +00:00
initcomma.go
initialize.go
initializerr.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
initloop.go cmd/compile: use []*Node instead of NodeList in sinit 2015-09-05 02:25:01 +00:00
inline_caller.go runtime: skip logical frames in runtime.Caller 2017-04-18 19:56:30 +00:00
inline_callers.go runtime: include inlined calls in result of CallersFrames 2017-03-29 17:27:38 +00:00
inline_literal.go cmd/compile: copy literals when inlining 2017-03-03 21:29:32 +00:00
inline_variadic.go cmd/compile: generate code that type checks when inlining variadic functions 2016-11-30 19:46:00 +00:00
inline.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
int_lit.go
intcvt.go
intrinsic_atomic.go cmd/compile: intrinsify Ctz, Bswap on ARM 2016-09-12 19:26:31 +00:00
intrinsic.go cmd/compile: intrinsify Ctz{32,64} and Bswap{32,64} on s390x 2016-09-19 19:03:01 +00:00
iota.go
label1.go cmd/compile/internal/gc: don't panic on continue in switch 2017-04-12 14:27:45 +00:00
label.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
linkmain_run.go test: fix linkmain test 2015-12-17 23:36:13 +00:00
linkmain.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
linkname.go cmd/compile: include linknames in export data 2017-02-08 20:59:45 +00:00
linkobj.go cmd/compile: add -linkobj flag to allow writing object file in two parts 2016-05-09 17:31:45 +00:00
linkx_run.go test: print output on link -X failure 2016-04-20 17:37:35 +00:00
linkx.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
literal.go
live1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
live2.go cmd/compile: mark temps with new AutoTemp flag, and use it. 2016-10-31 19:38:50 +00:00
live_syscall.go cmd/compile: mark temps with new AutoTemp flag, and use it. 2016-10-31 19:38:50 +00:00
live.go runtime: add mapdelete_fast* 2017-03-21 06:07:24 +00:00
locklinear.go test: deflake locklinear again 2017-04-05 18:46:31 +00:00
loopbce.go cmd/compile: make loop guard+rotate conditional on GOEXPERIMENT 2017-06-21 22:07:33 +00:00
makechan.go cmd/compile: generate makechan calls with int arguments 2017-08-15 05:54:24 +00:00
makemap.go cmd/compile: generate makemap calls with int arguments 2017-08-22 20:28:21 +00:00
makenew.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
mallocfin.go
map1.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
map.go test/mapnan.go: add regression test for non-empty interfaces. 2014-08-06 17:02:55 -04:00
maplinear.go test: make maplinear more robust 2014-10-27 18:59:02 -04:00
mergemul.go cmd/compile: combine x*n + y*n into (x+y)*n 2017-08-16 16:51:59 +00:00
method1.go cmd/compile: ignore receiver parameters in Eqtype 2016-03-17 00:38:15 +00:00
method2.go test: avoid matching file names in errcheck 2016-10-18 05:32:37 +00:00
method3.go
method4.go
method5.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
method.go
named1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
named.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
nil.go
nilcheck.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
nilptr2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
nilptr3.go cmd/compile: re-enable nilcheck removal in same block 2017-02-17 19:19:59 +00:00
nilptr4.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
nilptr.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
nosplit.go cmd/compile: omit X:framepointer in compile version 2017-07-17 16:36:49 +00:00
notinheap2.go cmd/compile: add go:notinheap type pragma 2016-10-15 17:58:14 +00:00
notinheap.go cmd/compile/internal/gc: inline typedcl0 and typedcl1 2017-02-01 22:52:32 +00:00
nowritebarrier.go cmd/compile, runtime: add go:yeswritebarrierrec pragma 2016-10-15 17:58:11 +00:00
nul1.go cmd/compile/internal/gc: enable new parser by default 2016-10-25 22:28:40 +00:00
opt_branchlikely.go cmd/compile: insert scheduling checks on loop backedges 2017-01-09 21:01:29 +00:00
parentype.go
peano.go
phiopt.go test: re-enable phi optimization test 2016-09-13 20:06:13 +00:00
print.go runtime: move built-in print routines to go. 2014-07-31 13:48:48 -07:00
print.out runtime: move built-in print routines to go. 2014-07-31 13:48:48 -07:00
printbig.go
printbig.out
prove.go cmd/compile/internal/gc: improve comparison with constant strings 2017-04-07 15:40:25 +00:00
range.go cmd/compile: fix assignment order in string range loop 2017-02-28 08:23:52 +00:00
README.md test: add README 2017-07-26 23:37:25 +00:00
recover1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
recover2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
recover3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
recover4.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
recover5.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
recover.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
reflectmethod1.go cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
reflectmethod2.go cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
reflectmethod3.go cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
reflectmethod4.go cmd/link: treat reflect.Value.Method like Call 2016-03-11 22:07:02 +00:00
rename1.go cmd/compile: avoid duplicate cast error 2017-08-22 13:44:35 +00:00
rename.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
reorder2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
reorder.go cmd/compile: Ensure left-to-right assignment 2017-02-11 21:46:21 +00:00
return.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate0.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
run.go runtime: restore arm assembly stubs for div/mod 2017-06-15 03:51:03 +00:00
rune.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
runtime.go cmd/compile/internal/gc: separate builtin and real runtime packages 2017-03-01 01:06:32 +00:00
shift1.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
shift2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
sieve.go
sigchld.go
sigchld.out
simassign.go
sinit_run.go all: retire architecture letter in file names, public API 2015-05-21 17:32:17 +00:00
sinit.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
sizeof.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
slice3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
slice3err.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
slicecap.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
sliceopt.go cmd/compile: use masks instead of branches for slicing 2016-10-27 20:22:49 +00:00
solitaire.go
stack.go
strength.go cmd/compile: generalize strength reduction of mulq 2016-03-30 22:27:13 +00:00
string_lit.go
stringrange.go
struct0.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
switch2.go cmd/compile/internal/syntax: match old parser errors and line numbers 2016-08-19 01:10:21 +00:00
switch3.go
switch4.go
switch5.go cmd/compile: make duplicate expr cases readable 2017-05-19 18:11:51 +00:00
switch6.go cmd/compile: improve error for wrong type in switch 2017-02-02 17:36:43 +00:00
switch7.go cmd/compile: make duplicate expr cases readable 2017-05-19 18:11:51 +00:00
switch.go
tinyfin.go runtime: fix finalization and profiling of tiny allocations 2015-11-03 18:57:18 +00:00
torture.go cmd/8g: don't allocate a register early for cap(CHAN). 2014-07-01 09:20:51 +02:00
turing.go
typecheck.go
typecheckloop.go cmd/compile: convert typecheck_stack to []*Node 2015-09-06 23:50:51 +00:00
typeswitch1.go
typeswitch2.go cmd/compile/internal/syntax: removed gcCompat code needed to pass orig. tests 2017-02-10 01:22:30 +00:00
typeswitch3.go cmd/compile: add test for non interface type switch 2017-03-25 22:52:54 +00:00
typeswitch.go
uintptrescapes2.go cmd/compile: mark temps with new AutoTemp flag, and use it. 2016-10-31 19:38:50 +00:00
uintptrescapes.go cmd/compile, syscall: add //go:uintptrescapes comment, and use it 2016-07-06 20:48:41 +00:00
undef.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
utf.go
varerr.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
varinit.go
writebarrier.go cmd/compile: don't use statictmps for SSA-able composite literals 2017-05-11 18:28:40 +00:00
zerodivide.go test: lock in test for _ assignment evaluation/zerodivide panic 2016-12-23 17:35:24 +00:00

The test directory contains tests of the Go tool chain and runtime. It includes black box tests, regression tests, and error output tests. They are run as part of all.bash.

To run just these tests, execute:

go run run.go

Standard library tests should be written as regular Go tests in the appropriate package.

The tool chain and runtime also have regular Go tests in their packages. The main reasons to add a new test to this directory are:

  • it is most naturally expressed using the test runner; or
  • it is also applicable to gccgo and other Go tool chains.