An error occurred fetching the project authors.
  1. 16 Dec, 2015 1 commit
  2. 12 Nov, 2015 1 commit
  3. 10 Nov, 2015 1 commit
    • Michael Matloob's avatar
      runtime: break atomics out into package runtime/internal/atomic · 67faca7d
      Michael Matloob authored
      This change breaks out most of the atomics functions in the runtime
      into package runtime/internal/atomic. It adds some basic support
      in the toolchain for runtime packages, and also modifies linux/arm
      atomics to remove the dependency on the runtime's mutex. The mutexes
      have been replaced with spinlocks.
      
      all trybots are happy!
      In addition to the trybots, I've tested on the darwin/arm64 builder,
      on the darwin/arm builder, and on a ppc64le machine.
      
      Change-Id: I6698c8e3cf3834f55ce5824059f44d00dc8e3c2f
      Reviewed-on: https://go-review.googlesource.com/14204
      Run-TryBot: Michael Matloob <matloob@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      67faca7d
  4. 03 Nov, 2015 1 commit
    • Ian Lance Taylor's avatar
      cmd/compile: make sure instrumented call has type width · 9179c9cb
      Ian Lance Taylor authored
      The width of the type of an external variable defined with a type
      literal may not be set when the instrumentation pass is run.  There are
      two cases in the standard library that fail without the call to dowidth:
      
      ../../../src/encoding/base32/base32.go:322: constant -1000000000 overflows uintptr
      ../../../src/encoding/base32/base32.go:329: constant -1000000000 overflows uintptr
      ../../../src/encoding/json/encode.go:385: constant -1000000000 overflows uintptr
      ../../../src/encoding/json/encode.go:387: constant -1000000000 overflows uintptr
      
      Change-Id: I7c3334f7decdb7488595ffe4090cd262d7334283
      Reviewed-on: https://go-review.googlesource.com/16331
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      9179c9cb
  5. 21 Oct, 2015 2 commits
  6. 20 Oct, 2015 1 commit
  7. 17 Sep, 2015 1 commit
  8. 31 Aug, 2015 1 commit
  9. 22 Jul, 2015 1 commit
  10. 30 Jun, 2015 1 commit
  11. 26 Jun, 2015 1 commit
  12. 03 Jun, 2015 3 commits
  13. 27 May, 2015 1 commit
  14. 26 May, 2015 1 commit
  15. 21 May, 2015 1 commit
  16. 13 May, 2015 1 commit
    • Russ Cox's avatar
      cmd/internal/gc: optimize slice + write barrier · d4472799
      Russ Cox authored
      The code generated for a slice x[i:j] or x[i:j:k] computes the entire
      new slice (base, len, cap) and then uses it as the evaluation of the
      slice expression.
      
      If the slice is part of an update x = x[i:j] or x = x[i:j:k], there are
      opportunities to avoid computing some of these fields.
      
      For x = x[0:i], we know that only the len is changing;
      base can be ignored completely, and cap can be left unmodified.
      
      For x = x[0:i:j], we know that only len and cap are changing;
      base can be ignored completely.
      
      For x = x[i:i], we know that the resulting cap is zero, and we don't
      adjust the base during a slice producing a zero-cap result,
      so again base can be ignored completely.
      
      No write to base, no write barrier.
      
      The old slice code was trying to work at a Go syntax level, mainly
      because that was how you wrote code just once instead of once
      per architecture. Now the compiler is factored a bit better and we
      can implement slice during code generation but still have one copy
      of the code. So the new code is working at that lower level.
      (It must, to update only parts of the result.)
      
      This CL by itself:
      name                   old mean              new mean              delta
      BinaryTree17            5.81s × (0.98,1.03)   5.71s × (0.96,1.05)     ~    (p=0.101)
      Fannkuch11              4.35s × (1.00,1.00)   4.39s × (1.00,1.00)   +0.79% (p=0.000)
      FmtFprintfEmpty        86.0ns × (0.94,1.11)  82.6ns × (0.98,1.04)   -3.86% (p=0.048)
      FmtFprintfString        276ns × (0.98,1.04)   273ns × (0.98,1.02)     ~    (p=0.235)
      FmtFprintfInt           274ns × (0.98,1.06)   270ns × (0.99,1.01)     ~    (p=0.119)
      FmtFprintfIntInt        506ns × (0.99,1.01)   475ns × (0.99,1.01)   -6.02% (p=0.000)
      FmtFprintfPrefixedInt   391ns × (0.99,1.01)   393ns × (1.00,1.01)     ~    (p=0.139)
      FmtFprintfFloat         566ns × (0.99,1.01)   574ns × (1.00,1.01)   +1.33% (p=0.001)
      FmtManyArgs            1.91µs × (0.99,1.01)  1.87µs × (0.99,1.02)   -1.83% (p=0.000)
      GobDecode              15.3ms × (0.99,1.02)  15.0ms × (0.98,1.05)   -1.84% (p=0.042)
      GobEncode              11.5ms × (0.97,1.03)  11.4ms × (0.99,1.03)     ~    (p=0.152)
      Gzip                    645ms × (0.99,1.01)   647ms × (0.99,1.01)     ~    (p=0.265)
      Gunzip                  142ms × (1.00,1.00)   143ms × (1.00,1.01)   +0.90% (p=0.000)
      HTTPClientServer       90.5µs × (0.97,1.04)  88.5µs × (0.99,1.03)   -2.27% (p=0.014)
      JSONEncode             32.0ms × (0.98,1.03)  29.6ms × (0.98,1.01)   -7.51% (p=0.000)
      JSONDecode              114ms × (0.99,1.01)   104ms × (1.00,1.01)   -8.60% (p=0.000)
      Mandelbrot200          6.04ms × (1.00,1.01)  6.02ms × (1.00,1.00)     ~    (p=0.057)
      GoParse                6.47ms × (0.97,1.05)  6.37ms × (0.97,1.04)     ~    (p=0.105)
      RegexpMatchEasy0_32     171ns × (0.93,1.07)   152ns × (0.99,1.01)  -11.09% (p=0.000)
      RegexpMatchEasy0_1K     550ns × (0.98,1.01)   530ns × (1.00,1.00)   -3.78% (p=0.000)
      RegexpMatchEasy1_32     135ns × (0.99,1.02)   134ns × (0.99,1.01)   -1.33% (p=0.002)
      RegexpMatchEasy1_1K     879ns × (1.00,1.01)   865ns × (1.00,1.00)   -1.58% (p=0.000)
      RegexpMatchMedium_32    243ns × (1.00,1.00)   233ns × (1.00,1.00)   -4.30% (p=0.000)
      RegexpMatchMedium_1K   70.3µs × (1.00,1.00)  69.5µs × (1.00,1.00)   -1.13% (p=0.000)
      RegexpMatchHard_32     3.82µs × (1.00,1.01)  3.74µs × (1.00,1.00)   -1.95% (p=0.000)
      RegexpMatchHard_1K      117µs × (1.00,1.00)   115µs × (1.00,1.00)   -1.69% (p=0.000)
      Revcomp                 917ms × (0.97,1.04)   920ms × (0.97,1.04)     ~    (p=0.786)
      Template                114ms × (0.99,1.01)   117ms × (0.99,1.01)   +2.58% (p=0.000)
      TimeParse               622ns × (0.99,1.01)   615ns × (0.99,1.00)   -1.06% (p=0.000)
      TimeFormat              665ns × (0.99,1.01)   654ns × (0.99,1.00)   -1.70% (p=0.000)
      
      This CL and previous CL (append) combined:
      name                   old mean              new mean              delta
      BinaryTree17            5.68s × (0.97,1.04)   5.71s × (0.96,1.05)     ~    (p=0.638)
      Fannkuch11              4.41s × (0.98,1.03)   4.39s × (1.00,1.00)     ~    (p=0.474)
      FmtFprintfEmpty        92.7ns × (0.91,1.16)  82.6ns × (0.98,1.04)  -10.89% (p=0.004)
      FmtFprintfString        281ns × (0.96,1.08)   273ns × (0.98,1.02)     ~    (p=0.078)
      FmtFprintfInt           288ns × (0.97,1.06)   270ns × (0.99,1.01)   -6.37% (p=0.000)
      FmtFprintfIntInt        493ns × (0.97,1.04)   475ns × (0.99,1.01)   -3.53% (p=0.002)
      FmtFprintfPrefixedInt   423ns × (0.97,1.04)   393ns × (1.00,1.01)   -7.07% (p=0.000)
      FmtFprintfFloat         598ns × (0.99,1.01)   574ns × (1.00,1.01)   -4.02% (p=0.000)
      FmtManyArgs            1.89µs × (0.98,1.05)  1.87µs × (0.99,1.02)     ~    (p=0.305)
      GobDecode              14.8ms × (0.98,1.03)  15.0ms × (0.98,1.05)     ~    (p=0.237)
      GobEncode              12.3ms × (0.98,1.01)  11.4ms × (0.99,1.03)   -6.95% (p=0.000)
      Gzip                    656ms × (0.99,1.05)   647ms × (0.99,1.01)     ~    (p=0.101)
      Gunzip                  142ms × (1.00,1.00)   143ms × (1.00,1.01)   +0.58% (p=0.001)
      HTTPClientServer       91.2µs × (0.97,1.04)  88.5µs × (0.99,1.03)   -3.02% (p=0.003)
      JSONEncode             32.6ms × (0.97,1.08)  29.6ms × (0.98,1.01)   -9.10% (p=0.000)
      JSONDecode              114ms × (0.97,1.05)   104ms × (1.00,1.01)   -8.74% (p=0.000)
      Mandelbrot200          6.11ms × (0.98,1.04)  6.02ms × (1.00,1.00)     ~    (p=0.090)
      GoParse                6.66ms × (0.97,1.04)  6.37ms × (0.97,1.04)   -4.41% (p=0.000)
      RegexpMatchEasy0_32     159ns × (0.99,1.00)   152ns × (0.99,1.01)   -4.69% (p=0.000)
      RegexpMatchEasy0_1K     538ns × (1.00,1.01)   530ns × (1.00,1.00)   -1.57% (p=0.000)
      RegexpMatchEasy1_32     138ns × (1.00,1.00)   134ns × (0.99,1.01)   -2.91% (p=0.000)
      RegexpMatchEasy1_1K     869ns × (0.99,1.01)   865ns × (1.00,1.00)   -0.51% (p=0.012)
      RegexpMatchMedium_32    252ns × (0.99,1.01)   233ns × (1.00,1.00)   -7.85% (p=0.000)
      RegexpMatchMedium_1K   72.7µs × (1.00,1.00)  69.5µs × (1.00,1.00)   -4.43% (p=0.000)
      RegexpMatchHard_32     3.85µs × (1.00,1.00)  3.74µs × (1.00,1.00)   -2.74% (p=0.000)
      RegexpMatchHard_1K      118µs × (1.00,1.00)   115µs × (1.00,1.00)   -2.24% (p=0.000)
      Revcomp                 920ms × (0.97,1.07)   920ms × (0.97,1.04)     ~    (p=0.998)
      Template                129ms × (0.98,1.03)   117ms × (0.99,1.01)   -9.79% (p=0.000)
      TimeParse               619ns × (0.99,1.01)   615ns × (0.99,1.00)   -0.57% (p=0.011)
      TimeFormat              661ns × (0.98,1.04)   654ns × (0.99,1.00)     ~    (p=0.223)
      
      Change-Id: If054d81ab2c71d8d62cf54b5b1fac2af66b387fc
      Reviewed-on: https://go-review.googlesource.com/9813Reviewed-by: default avatarDavid Chase <drchase@google.com>
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      d4472799
  17. 28 Apr, 2015 1 commit
    • Russ Cox's avatar
      cmd/internal/gc: emit write barriers at lower level · 0ad4f8b1
      Russ Cox authored
      This is primarily preparation for inlining, not an optimization by itself,
      but it still helps some.
      
      name                                       old                     new          delta
      BenchmarkBinaryTree17              18.2s × (0.99,1.01)     17.9s × (0.99,1.01)  -1.57%
      BenchmarkFannkuch11                4.44s × (1.00,1.00)     4.42s × (1.00,1.00)  -0.40%
      BenchmarkFmtFprintfEmpty           119ns × (0.95,1.02)     118ns × (0.96,1.02)  ~
      BenchmarkFmtFprintfString          501ns × (0.99,1.02)     486ns × (0.99,1.01)  -2.89%
      BenchmarkFmtFprintfInt             474ns × (0.99,1.00)     457ns × (0.99,1.01)  -3.59%
      BenchmarkFmtFprintfIntInt          792ns × (1.00,1.00)     768ns × (1.00,1.01)  -3.03%
      BenchmarkFmtFprintfPrefixedInt     574ns × (1.00,1.01)     584ns × (0.99,1.03)  +1.83%
      BenchmarkFmtFprintfFloat           749ns × (1.00,1.00)     739ns × (0.99,1.00)  -1.34%
      BenchmarkFmtManyArgs              2.94µs × (1.00,1.01)    2.77µs × (1.00,1.00)  -5.76%
      BenchmarkGobDecode                39.5ms × (0.99,1.01)    39.3ms × (0.99,1.01)  ~
      BenchmarkGobEncode                39.4ms × (1.00,1.01)    39.4ms × (0.99,1.00)  ~
      BenchmarkGzip                      658ms × (1.00,1.01)     661ms × (0.99,1.01)  ~
      BenchmarkGunzip                    142ms × (1.00,1.00)     142ms × (1.00,1.00)  +0.22%
      BenchmarkHTTPClientServer          134µs × (0.99,1.01)     133µs × (0.98,1.01)  ~
      BenchmarkJSONEncode               57.1ms × (0.99,1.01)    56.5ms × (0.99,1.01)  ~
      BenchmarkJSONDecode                141ms × (1.00,1.00)     143ms × (1.00,1.00)  +1.09%
      BenchmarkMandelbrot200            6.01ms × (1.00,1.00)    6.01ms × (1.00,1.00)  ~
      BenchmarkGoParse                  10.1ms × (0.91,1.09)     9.6ms × (0.94,1.07)  ~
      BenchmarkRegexpMatchEasy0_32       207ns × (1.00,1.01)     210ns × (1.00,1.00)  +1.45%
      BenchmarkRegexpMatchEasy0_1K       592ns × (0.99,1.00)     596ns × (0.99,1.01)  +0.68%
      BenchmarkRegexpMatchEasy1_32       184ns × (0.99,1.01)     184ns × (0.99,1.01)  ~
      BenchmarkRegexpMatchEasy1_1K      1.01µs × (1.00,1.00)    1.01µs × (0.99,1.01)  ~
      BenchmarkRegexpMatchMedium_32      327ns × (0.99,1.00)     327ns × (1.00,1.01)  ~
      BenchmarkRegexpMatchMedium_1K     92.5µs × (1.00,1.00)    93.0µs × (1.00,1.02)  +0.48%
      BenchmarkRegexpMatchHard_32       4.79µs × (0.95,1.00)    4.76µs × (0.95,1.01)  ~
      BenchmarkRegexpMatchHard_1K        136µs × (1.00,1.00)     136µs × (1.00,1.01)  ~
      BenchmarkRevcomp                   900ms × (0.99,1.01)     892ms × (1.00,1.01)  ~
      BenchmarkTemplate                  170ms × (0.99,1.01)     175ms × (0.99,1.00)  +2.95%
      BenchmarkTimeParse                 645ns × (1.00,1.00)     638ns × (1.00,1.00)  -1.16%
      BenchmarkTimeFormat                740ns × (1.00,1.00)     772ns × (1.00,1.00)  +4.39%
      
      Change-Id: I0be905e32791e0cb70ff01f169c4b309a971d981
      Reviewed-on: https://go-review.googlesource.com/9159Reviewed-by: default avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      0ad4f8b1
  18. 17 Apr, 2015 1 commit
  19. 10 Apr, 2015 1 commit
    • Dmitry Vyukov's avatar
      cmd/gc: fix handling of OGETG in race mode · 08c43488
      Dmitry Vyukov authored
      Now that getg is an intrinsic, more runtime functions
      gets inlined (in particular, LockOSThread).
      Runtime code gets race instrumented after inlining into
      other packages. This can lead to false positives,
      as race detector ignores all internal synchronization in runtime.
      Inling of LockOSThread lead to false race reports on m contents.
      See the issue for an example.
      
      Fixes #10380
      
      Change-Id: Ic9b760b53c28c2350bc54a5d4677fcd1c1f86e5f
      Reviewed-on: https://go-review.googlesource.com/8690Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      08c43488
  20. 07 Apr, 2015 2 commits
  21. 03 Apr, 2015 1 commit
  22. 02 Apr, 2015 1 commit
  23. 01 Apr, 2015 2 commits
  24. 11 Mar, 2015 1 commit
  25. 03 Mar, 2015 1 commit
  26. 23 Feb, 2015 1 commit
  27. 20 Feb, 2015 1 commit
  28. 17 Feb, 2015 1 commit