1. 15 Sep, 2016 23 commits
  2. 14 Sep, 2016 17 commits
    • Josh Bleecher Snyder's avatar
      cmd/dist: run vet/all on dedicated builders · f9e9412c
      Josh Bleecher Snyder authored
      We will soon add dedicated builders for running vet/all.
      Their name will end with "-vetall".
      On those builders, run vet/all and nothing else.
      On all other builders, including local all.bash,
      don't run vet/all at all, because it is slow.
      
      This will probably be refined more over time.
      
      Change-Id: Ib1d0337adda84353931a325515c132068d4320cd
      Reviewed-on: https://go-review.googlesource.com/28962
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      f9e9412c
    • Matthew Dempsky's avatar
      cmd/compile: fix comma-ok assignments for non-boolean ok · fb273fc3
      Matthew Dempsky authored
      Passes toolstash -cmp.
      
      Fixes #16870.
      
      Change-Id: I70dc3bbb3cd3031826e5a54b96ba1ea603c282d1
      Reviewed-on: https://go-review.googlesource.com/27910
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
      fb273fc3
    • Martin Möhrmann's avatar
      cmd/compile: intrinsify slicebytetostringtmp when not instrumenting · 150de948
      Martin Möhrmann authored
      when not instrumenting:
      - Intrinsify uses of slicebytetostringtmp within the runtime package
        in the ssa backend.
      - Pass OARRAYBYTESTRTMP nodes to the compiler backends for lowering
        instead of generating calls to slicebytetostringtmp.
      
      name                    old time/op  new time/op  delta
      ConcatStringAndBytes-4  27.9ns ± 2%  24.7ns ± 2%  -11.52%  (p=0.000 n=43+43)
      
      Fixes #17044
      
      Change-Id: I51ce9c3b93284ce526edd0234f094e98580faf2d
      Reviewed-on: https://go-review.googlesource.com/29017
      Run-TryBot: Martin Möhrmann <martisch@uos.de>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      150de948
    • Josh Bleecher Snyder's avatar
      cmd/vet/all: check platforms concurrently · 1c5ac082
      Josh Bleecher Snyder authored
      Change-Id: I63e7fd7f62aa80e1252b0c5b6c472439aa66da73
      Reviewed-on: https://go-review.googlesource.com/29169Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      1c5ac082
    • Joe Tsai's avatar
      time: document in UnixNano when the value is valid · b78108d5
      Joe Tsai authored
      It is unlikely that the value of UnixNano overflow in most
      use cases. However, the max date of 2262 is also within the range
      where it may be of concern to some users. Rather than have each
      person recompute when this overflows to validate if its okay for
      their use case, we just document it as within the years 1678 and
      2262, for user's convenience.
      
      Fixes #16977
      
      Change-Id: I4988738c147f4a6d30f8b8735c3941b75113bb16
      Reviewed-on: https://go-review.googlesource.com/28478Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
      b78108d5
    • Matthew Dempsky's avatar
      cmd/compile: add Nodes.Prepend helper method · 4b8a1611
      Matthew Dempsky authored
      Prepared with gofmt -r.
      
      Change-Id: Ib9f224cc20353acd9c5850dead1a2d32ca5427d3
      Reviewed-on: https://go-review.googlesource.com/29165
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      4b8a1611
    • Brad Fitzpatrick's avatar
      math/big: cut 2 minutes off race tests · 6f135bfd
      Brad Fitzpatrick authored
      No need to test so many sizes in race mode, especially for a package
      which doesn't use goroutines.
      
      Reduces test time from 2.5 minutes to 25 seconds.
      
      Updates #17104
      
      Change-Id: I7065b39273f82edece385c0d67b3f2d83d4934b8
      Reviewed-on: https://go-review.googlesource.com/29163Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
      6f135bfd
    • Brad Fitzpatrick's avatar
      sort: cut 140 seconds off race build tests · 983e2fd4
      Brad Fitzpatrick authored
      No coverage is gained by running the 1e6 versions of the test over the
      1e4 versions. It just adds 140 seconds of race overhead time.
      
      Updates #17104
      
      Change-Id: I41408aedae34a8b1a148eebdda20269cdefffba3
      Reviewed-on: https://go-review.googlesource.com/29159
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
      983e2fd4
    • Josh Bleecher Snyder's avatar
      cmd/compile, cmd/link: fix printf verbs · 83676b93
      Josh Bleecher Snyder authored
      Found by vet.
      
      Change-Id: I9dbc6208ddbb5b407f4ddd20efbc166aac852cf7
      Reviewed-on: https://go-review.googlesource.com/29162
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      83676b93
    • Josh Bleecher Snyder's avatar
      cmd/vet/all: update whitelist · d72c2846
      Josh Bleecher Snyder authored
      CL 29110 brought the fix into the main tree.
      
      Change-Id: I7bf02670d40f22d35c63e05173419fdee9f93462
      Reviewed-on: https://go-review.googlesource.com/29161
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      d72c2846
    • Josh Bleecher Snyder's avatar
      cmd/compile/internal/obj/x86: eliminate some function prologues · b92d39ef
      Josh Bleecher Snyder authored
      The standard sort swap method
      
      func (t T) Swap(i, j int) {
        t[i], t[j] = t[j], t[i]
      }
      
      uses no stack space on architectures for which
      FixedFrameSize == 0, currently 386 and amd64.
      
      Nevertheless, we insert a stack check prologue.
      This is because it contains a call to
      runtime.panicindex.
      
      However, for a few common runtime functions,
      we know at compile time that they require
      no arguments. Allow them to pass unnoticed.
      
      Triggers for 380 functions during make.bash.
      Cuts 4k off cmd/go.
      
      encoding/binary benchmarks:
      
      ReadSlice1000Int32s-8     9.49µs ± 3%    9.41µs ± 5%    ~     (p=0.075 n=29+27)
      ReadStruct-8              1.50µs ± 3%    1.48µs ± 2%  -1.49%  (p=0.000 n=30+28)
      ReadInts-8                 599ns ± 3%     600ns ± 3%    ~     (p=0.471 n=30+29)
      WriteInts-8                836ns ± 4%     841ns ± 3%    ~     (p=0.371 n=30+29)
      WriteSlice1000Int32s-8    8.84µs ± 3%    8.69µs ± 5%  -1.71%  (p=0.001 n=30+30)
      PutUvarint32-8            29.6ns ± 1%    28.1ns ± 3%  -5.21%  (p=0.000 n=28+28)
      PutUvarint64-8            82.6ns ± 5%    82.3ns ±10%  -0.43%  (p=0.014 n=27+30)
      
      Swap assembly before:
      
      "".T.Swap t=1 size=74 args=0x28 locals=0x0
      	0x0000 00000 (swap.go:5)	TEXT	"".T.Swap(SB), $0-40
      	0x0000 00000 (swap.go:5)	MOVQ	(TLS), CX
      	0x0009 00009 (swap.go:5)	CMPQ	SP, 16(CX)
      	0x000d 00013 (swap.go:5)	JLS	67
      	0x000f 00015 (swap.go:5)	FUNCDATA	$0, gclocals·3cadd97b66f25a3a642be35e9362338f(SB)
      	0x000f 00015 (swap.go:5)	FUNCDATA	$1, gclocals·69c1753bd5f81501d95132d08af04464(SB)
      	0x000f 00015 (swap.go:5)	MOVQ	"".i+32(FP), AX
      	0x0014 00020 (swap.go:5)	MOVQ	"".t+16(FP), CX
      	0x0019 00025 (swap.go:5)	CMPQ	AX, CX
      	0x001c 00028 (swap.go:5)	JCC	$0, 60
      	0x001e 00030 (swap.go:5)	MOVQ	"".t+8(FP), DX
      	0x0023 00035 (swap.go:5)	MOVBLZX	(DX)(AX*1), BX
      	0x0027 00039 (swap.go:5)	MOVQ	"".j+40(FP), SI
      	0x002c 00044 (swap.go:5)	CMPQ	SI, CX
      	0x002f 00047 (swap.go:5)	JCC	$0, 60
      	0x0031 00049 (swap.go:5)	MOVBLZX	(DX)(SI*1), CX
      	0x0035 00053 (swap.go:5)	MOVB	CL, (DX)(AX*1)
      	0x0038 00056 (swap.go:5)	MOVB	BL, (DX)(SI*1)
      	0x003b 00059 (swap.go:5)	RET
      	0x003c 00060 (swap.go:5)	PCDATA	$0, $1
      	0x003c 00060 (swap.go:5)	CALL	runtime.panicindex(SB)
      	0x0041 00065 (swap.go:5)	UNDEF
      	0x0043 00067 (swap.go:5)	NOP
      	0x0043 00067 (swap.go:5)	CALL	runtime.morestack_noctxt(SB)
      	0x0048 00072 (swap.go:5)	JMP	0
      
      Swap assembly after:
      
      "".T.Swap t=1 size=52 args=0x28 locals=0x0
      	0x0000 00000 (swap.go:5)	TEXT	"".T.Swap(SB), $0-40
      	0x0000 00000 (swap.go:5)	FUNCDATA	$0, gclocals·3cadd97b66f25a3a642be35e9362338f(SB)
      	0x0000 00000 (swap.go:5)	FUNCDATA	$1, gclocals·69c1753bd5f81501d95132d08af04464(SB)
      	0x0000 00000 (swap.go:5)	MOVQ	"".i+32(FP), AX
      	0x0005 00005 (swap.go:5)	MOVQ	"".t+16(FP), CX
      	0x000a 00010 (swap.go:5)	CMPQ	AX, CX
      	0x000d 00013 (swap.go:5)	JCC	$0, 45
      	0x000f 00015 (swap.go:5)	MOVQ	"".t+8(FP), DX
      	0x0014 00020 (swap.go:5)	MOVBLZX	(DX)(AX*1), BX
      	0x0018 00024 (swap.go:5)	MOVQ	"".j+40(FP), SI
      	0x001d 00029 (swap.go:5)	CMPQ	SI, CX
      	0x0020 00032 (swap.go:5)	JCC	$0, 45
      	0x0022 00034 (swap.go:5)	MOVBLZX	(DX)(SI*1), CX
      	0x0026 00038 (swap.go:5)	MOVB	CL, (DX)(AX*1)
      	0x0029 00041 (swap.go:5)	MOVB	BL, (DX)(SI*1)
      	0x002c 00044 (swap.go:5)	RET
      	0x002d 00045 (swap.go:5)	PCDATA	$0, $1
      	0x002d 00045 (swap.go:5)	CALL	runtime.panicindex(SB)
      	0x0032 00050 (swap.go:5)	UNDEF
      
      Change-Id: I57dad14af8aaa5e6112deac407cfadc2bfaf1f54
      Reviewed-on: https://go-review.googlesource.com/24814
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      b92d39ef
    • Josh Bleecher Snyder's avatar
      cmd: add internal/browser package · 33ed3564
      Josh Bleecher Snyder authored
      cmd/cover, cmd/trace, and cmd/pprof all open browsers.
      'go bug' will soon also open a browser.
      It is time to unify the browser-handling code.
      
      Change-Id: Iee6b443e21e938aeaaac366a1aefb1afbc7d9b2c
      Reviewed-on: https://go-review.googlesource.com/29160
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      33ed3564
    • Brad Fitzpatrick's avatar
      bytes: cut 10 seconds off the race builder's benchmark test · 9a7ce41d
      Brad Fitzpatrick authored
      Don't benchmark so many sizes during the race builder's benchmark run.
      
      This package doesn't even use goroutines.
      
      Cuts off 10 seconds.
      
      Updates #17104
      
      Change-Id: Ibb2c7272c18b9014a775949c656a5b930f197cd4
      Reviewed-on: https://go-review.googlesource.com/29158Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
      9a7ce41d
    • Brad Fitzpatrick's avatar
      regexp: don't run slow benchmarks on race builders · f09d0458
      Brad Fitzpatrick authored
      Shave 6.5 minutes off the *-race build time.
      
      The *-race builders run:
      
          go test -short -race -run=^$ -benchtime=.1s -cpu=4 $PKG
      
      ... for each package with benchmarks.
      
      The point isn't to measure the speed of the packages, but rather to
      see if there are any races. (which is why a benchtime of 0.1 seconds
      is used)
      
      But running in race mode makes things slower and our benchmarks aren't
      all very fast to begin with.
      
      The regexp benchmarks in race were taking over 6.5 minutes. With this
      CL, it's now 8 seconds.
      
      Updates #17104
      
      Change-Id: I054528d09b1568d37aac9f9b515d6ed90a5cf5b0
      Reviewed-on: https://go-review.googlesource.com/29156
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
      f09d0458
    • Keith Randall's avatar
      cmd/compile: make ssa compilation unconditional · 167e381f
      Keith Randall authored
      Rip out the code that allows SSA to be used conditionally.
      
      No longer exists:
       ssa=0 flag
       GOSSAHASH
       GOSSAPKG
       SSATEST
      
      GOSSAFUNC now only controls the printing of the IR/html.
      
      Still need to rip out all of the old backend.  It should no longer be
      callable after this CL.
      
      Update #16357
      
      Change-Id: Ib30cc18fba6ca52232c41689ba610b0a94aa74f5
      Reviewed-on: https://go-review.googlesource.com/29155
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
      167e381f
    • David Chase's avatar
      cmd/compile: enable SSA for PowerPC 64 Big-endian · eed061f8
      David Chase authored
      It passed tests once, if anything's wrong, better to fail
      sooner than later.
      
      Change-Id: Ibb1c5db3f4c5535a4ff4681fd157db77082c5041
      Reviewed-on: https://go-review.googlesource.com/28982
      Run-TryBot: David Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      eed061f8
    • Brad Fitzpatrick's avatar
      cmd/dist: skip compiling 100 packages without benchmarks in race mode · 3ead4998
      Brad Fitzpatrick authored
      The go_test_bench:* tests run:
      
          go test -short -race -run=^$ -benchtime=.1s -cpu=4 $PKG
      
      ... on each discovered package with any tests. (The same set used for
      the "go_test:*" tests)
      
      That set was 168 packages:
      
      $ go tool dist test -list | grep go_test: | wc -l
      168
      
      But only 76 of those have a "func Benchmark", and running each
      "go_test_bench:" test and compiling it in race mode, just to do
      nothing took 1-2 seconds each.
      
      So stop doing that and filter out the useless packages earlier. Now:
      
      $ go tool dist test -list -race | grep go_test_bench:  | wc -l
      76
      
      Should save 90-180 seconds. (or maybe 45 seconds for trybots, since
      they're sharded)
      
      Updates #17104
      
      Change-Id: I08ccb072a0dc0454ea425540ee8e74b59f83b773
      Reviewed-on: https://go-review.googlesource.com/29153
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      3ead4998