1. 13 Jun, 2018 5 commits
  2. 12 Jun, 2018 25 commits
  3. 11 Jun, 2018 10 commits
    • Michael Fraenkel's avatar
      cmd/doc: continue to search when package import fails · d0d47bb9
      Michael Fraenkel authored
      Keep searching for a package that is both findable and importable. The
      current code would always guarantee that a package was findable but
      exited if it was not importable.
      
      Fixes #25478
      
      Change-Id: I237b7dfafb930cae02538c4a2e4d5ce0c1058478
      Reviewed-on: https://go-review.googlesource.com/114295Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
      Reviewed-by: 's avatarRob Pike <r@golang.org>
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      d0d47bb9
    • Iskander Sharipov's avatar
      runtime: remove TODO notes suggesting jump tables · f864d89e
      Iskander Sharipov authored
      For memmove/memclr using jump tables only reduces overall
      function performance for both amd64 and 386.
      
      Benchmarks for 32-bit memclr:
      
      	name            old time/op    new time/op    delta
      	Memclr/5-8        8.01ns ± 0%    8.94ns ± 2%  +11.59%  (p=0.000 n=9+9)
      	Memclr/16-8       9.05ns ± 0%    9.49ns ± 0%   +4.81%  (p=0.000 n=8+8)
      	Memclr/64-8       9.15ns ± 0%    9.49ns ± 0%   +3.76%  (p=0.000 n=9+10)
      	Memclr/256-8      16.6ns ± 0%    16.6ns ± 0%     ~     (p=1.140 n=10+9)
      	Memclr/4096-8      179ns ± 0%     166ns ± 0%   -7.26%  (p=0.000 n=9+8)
      	Memclr/65536-8    3.36µs ± 1%    3.31µs ± 1%   -1.48%  (p=0.000 n=10+9)
      	Memclr/1M-8       59.5µs ± 3%    60.5µs ± 2%   +1.67%  (p=0.009 n=10+10)
      	Memclr/4M-8        239µs ± 3%     245µs ± 0%   +2.49%  (p=0.004 n=10+8)
      	Memclr/8M-8        618µs ± 2%     614µs ± 1%     ~     (p=0.315 n=10+8)
      	Memclr/16M-8      1.49ms ± 2%    1.47ms ± 1%   -1.11%  (p=0.029 n=10+10)
      	Memclr/64M-8      7.06ms ± 1%    7.05ms ± 0%     ~     (p=0.573 n=10+8)
      	[Geo mean]        3.36µs         3.39µs        +1.14%
      
      For less predictable data, like loop iteration dependant sizes,
      branch table still shows 2-5% worse results.
      It also makes code slightly more complicated.
      
      This CL removes TODO note that directly suggest trying this
      optimization out. That encourages people to spend their time
      in a quite hopeless endeavour.
      
      The code used to implement branch table used a 32/64-entry table
      with pointers to TEXT blocks that implemented every associated
      label work. Most last entries point to "loop" code that is
      a fallthrough for all other sizes that do not map into specialized
      routines. The only inefficiency is extra MOVL/MOVQ required
      to fetch table pointer itself as MOVL $sym<>(SB)(AX*4) is not valid
      in Go asm (it works in other assemblers):
      
      	TEXT ·memclrNew(SB), NOSPLIT, $0-8
              	MOVL    ptr+0(FP), DI
              	MOVL    n+4(FP), BX
              	// Handle 0 separately.
              	TESTL   BX, BX
              	JEQ     _0
              	LEAL    -1(BX), CX // n-1
              	BSRL    CX, CX
      		// AX or X0 zeroed inside every text block.
             		MOVL    $memclrTable<>(SB), AX
              	JMP     (AX)(CX*4)
      	_0:
              	RET
      
      Change-Id: I4f706931b8127f85a8439b95834d5c2485a5d1bf
      Reviewed-on: https://go-review.googlesource.com/115678
      Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      f864d89e
    • David du Colombier's avatar
      cmd/nm: fix TestGoExec on Plan 9 · 92f8acd1
      David du Colombier authored
      CL 115975 changed TestGoExec to check symbol types.
      However, this test is failing on Plan 9, because
      there is no read-only data segment symbol on Plan 9.
      
      This change fixes TestGoExec to replace the check
      of read-only data segment symbol (R) by data segment
      symbol (D) on Plan 9.
      
      Fixes #25820.
      
      Change-Id: I7164cd9056fa1dfcd1dc1b0f87653290c14c85fa
      Reviewed-on: https://go-review.googlesource.com/118035
      Run-TryBot: David du Colombier <0intro@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      92f8acd1
    • Paul Jolly's avatar
      cmd/go: set DepOnly on package when calling go list -deps · 131d7e0d
      Paul Jolly authored
      Currently .DepOnly is set when go list -test is invoked to help
      distinguish those packages that matched the command line spec from those
      which are dependencies (of test packages). This is also useful when
      calling go list -deps for the same reason.
      
      Change-Id: Ifc0e68dad0fd01355928793ef803691dee5f4f29
      Reviewed-on: https://go-review.googlesource.com/112755
      Run-TryBot: Paul Jolly <paul@myitcv.org.uk>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
      Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
      131d7e0d
    • Russ Cox's avatar
      cmd/vet: add support for vet-specific export data · b111f3cc
      Russ Cox authored
      An upcoming change to cmd/go will enable this functionality, which
      allows vet to write down information about one package for use by
      later invocation of vet that analyze code importing that package.
      
      We've intended to do this for a long time, but the build caching was
      necessary to have a decent way to manage the vet-specific export data.
      
      This is also an experiment in building scalable whole-program analyses.
      In the long term we'd like to allow other analyses to be invoked this way.
      
      Change-Id: I34e4b70445786b2e8707ff6a0c00947bf1491511
      Reviewed-on: https://go-review.googlesource.com/117099
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
      b111f3cc
    • Lynn Boger's avatar
      runtime/race: implement race detector for ppc64le · 9e9ff565
      Lynn Boger authored
      This adds the support to enable the race detector for ppc64le.
      
      Added runtime/race_ppc64le.s to manage the calls from Go to the
      LLVM tsan functions, mostly converting from the Go ABI to the
      PPC64 ABI expected by Clang generated code.
      
      Changed racewalk.go to call racefuncenterfp instead of racefuncenter
      on ppc64le to allow the caller pc to be obtained in the asm code
      before calling the tsan version.
      
      Changed the set up code for racecallbackthunk so it doesn't use
      the autogenerated save and restore of the link register since that
      sequence uses registers inconsistent with the normal ppc64 ABI.
      
      Made various changes to recognize that race is supported for
      ppc64le.
      
      Ensured that tls_g is updated and accessible from race_linux_ppc64le.s
      so that the race ctx can be obtained and passed to tsan functions.
      
      This enables the race tests for ppc64le in cmd/dist/test.go and
      increases the timeout when running the benchmarks with the -race
      option to avoid timing out.
      
      Updates #24354, #23731
      
      Change-Id: Ib97dc7ac313e6313c836dc7d2fb698f9d8fba3ef
      Reviewed-on: https://go-review.googlesource.com/107935
      Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      9e9ff565
    • Yury Smolsky's avatar
      cmd/compile: fix wording in README · 1de0dcfc
      Yury Smolsky authored
      "Syntax analysis" sounds more familiar and fits the
      item before, which says "lexical analysis".
      If there was specific intention to the original wording,
      I, as a reader, would like to see it instead of this
      confusing wording.
      
      Change-Id: Id32dbf75300a86b21cb9f35e54526184fe5df6cb
      Reviewed-on: https://go-review.googlesource.com/117696Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      1de0dcfc
    • Yury Smolsky's avatar
      cmd/compile: add doc comment to the parseFiles function · e411bd70
      Yury Smolsky authored
      Change-Id: Ifa14557ba834865602c207297ccf0c63e93feb4c
      Reviewed-on: https://go-review.googlesource.com/117695
      Run-TryBot: Yury Smolsky <yury@smolsky.by>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      e411bd70
    • Alberto Donizetti's avatar
      lib/time: update vendored tzdata to release 2018e · bb222cde
      Alberto Donizetti authored
      It has been a long time since the last time the vendored zoneinfo in
      lib/time was updated, and we're well into the freeze. Update it to the
      lastest release from IANA.
      
      Updates #22487
      
      Change-Id: Ib9a8eb409554848285fc88363dbb04ed9d6d9eb0
      Reviewed-on: https://go-review.googlesource.com/117855Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      bb222cde
    • Lynn Boger's avatar
      runtime: restore r2 when restoring state from gobuf in gogo on ppc64x · 30a63ece
      Lynn Boger authored
      When using plugins with goroutines calling cgo, we hit a case where
      an intermittent SIGSEGV occurs when referencing an address that is based
      on r2 (TOC address). When the failure can be generated in gdb, the
      contents of r2 is wrong even though the value in the current stack's
      slot for r2 is correct. So that means it somehow switched to start
      running the code in this function without passing through the beginning
      of the function which had the correct value of r2 and stored it there.
      
      It was noted that in runtime.gogo when the state is restored from
      gobuf, r2 is not restored from its slot on the stack. Adding the
      instruction to restore r2 prevents the SIGSEGV.
      
      This adds a testcase under testplugin which reproduces the problem if
      the program is run multiple times. The team who reported this problem
      has verified it fixes the issue on their larger, more complex
      application.
      
      Fixes #25756
      
      Change-Id: I6028b6f1f8775d5c23f4ebb57ae273330a28eb8f
      Reviewed-on: https://go-review.googlesource.com/117515
      Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      30a63ece