1. 06 Sep, 2016 8 commits
    • Aliaksandr Valialkin's avatar
      regexp: reduce mallocs in Regexp.Find* and Regexp.ReplaceAll*. · bea39e63
      Aliaksandr Valialkin authored
      This improves Regexp.Find* and Regexp.ReplaceAll* speed:
      
      name                  old time/op    new time/op    delta
      Find-4                   345ns ± 1%     314ns ± 1%    -8.94%    (p=0.000 n=9+8)
      FindString-4             341ns ± 1%     308ns ± 0%    -9.85%   (p=0.000 n=10+9)
      FindSubmatch-4           440ns ± 1%     404ns ± 0%    -8.27%   (p=0.000 n=10+8)
      FindStringSubmatch-4     426ns ± 0%     387ns ± 0%    -9.07%   (p=0.000 n=10+9)
      ReplaceAll-4            1.75µs ± 1%    1.67µs ± 0%    -4.45%   (p=0.000 n=9+10)
      
      name                  old alloc/op   new alloc/op   delta
      Find-4                   16.0B ± 0%     0.0B ±NaN%  -100.00%  (p=0.000 n=10+10)
      FindString-4             16.0B ± 0%     0.0B ±NaN%  -100.00%  (p=0.000 n=10+10)
      FindSubmatch-4           80.0B ± 0%     48.0B ± 0%   -40.00%  (p=0.000 n=10+10)
      FindStringSubmatch-4     64.0B ± 0%     32.0B ± 0%   -50.00%  (p=0.000 n=10+10)
      ReplaceAll-4              152B ± 0%      104B ± 0%   -31.58%  (p=0.000 n=10+10)
      
      name                  old allocs/op  new allocs/op  delta
      Find-4                    1.00 ± 0%     0.00 ±NaN%  -100.00%  (p=0.000 n=10+10)
      FindString-4              1.00 ± 0%     0.00 ±NaN%  -100.00%  (p=0.000 n=10+10)
      FindSubmatch-4            2.00 ± 0%      1.00 ± 0%   -50.00%  (p=0.000 n=10+10)
      FindStringSubmatch-4      2.00 ± 0%      1.00 ± 0%   -50.00%  (p=0.000 n=10+10)
      ReplaceAll-4              8.00 ± 0%      5.00 ± 0%   -37.50%  (p=0.000 n=10+10)
      
      Fixes #15643
      
      Change-Id: I594fe51172373e2adb98d1d25c76ca2cde54ff48
      Reviewed-on: https://go-review.googlesource.com/23030Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      bea39e63
    • David Crawshaw's avatar
      cmd/compile: generate table of main symbol types · 5923df1a
      David Crawshaw authored
      For each exported symbol in package main, add its name and type to
      go.plugin.tabs symbol. This is used by the runtime when loading a
      plugin to return a typed interface{} value.
      
      Change-Id: I23c39583e57180acb8f7a74d218dae4368614f46
      Reviewed-on: https://go-review.googlesource.com/27818
      Run-TryBot: David Crawshaw <crawshaw@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      5923df1a
    • Ilya Tocar's avatar
      math: fix sqrt regression on AMD64 · 6e703ae7
      Ilya Tocar authored
      1.7 introduced a significant regression compared to 1.6:
      
      SqrtIndirect-4  2.32ns ± 0%  7.86ns ± 0%  +238.79%        (p=0.000 n=20+18)
      
      This is caused by sqrtsd preserving upper part of destination register.
      Which introduces dependency on previous  value of X0.
      In 1.6 benchmark loop didn't use X0 immediately after call:
      
      callq  *%rbx
      movsd  0x8(%rsp),%xmm2
      movsd  0x20(%rsp),%xmm1
      addsd  %xmm2,%xmm1
      mov    0x18(%rsp),%rax
      inc    %rax
      jmp    loop
      
      In 1.7 however xmm0 is used just after call:
      
      callq  *%rbx
      mov    0x10(%rsp),%rcx
      lea    0x1(%rcx),%rax
      movsd  0x8(%rsp),%xmm0
      movsd  0x18(%rsp),%xmm1
      
      I've  verified that this is caused by dependency, by inserting
      XORPS X0,X0 in the beginning of math.Sqrt, which puts performance back on 1.6 level.
      
      Splitting SQRTSD mem,reg into:
      MOVSD mem,reg
      SQRTSD reg,reg
      
      Removes dependency, because MOVSD (load version)
      doesn't need to preserve upper part of a register.
      And reg,reg operation is solved by renamer in CPU.
      
      As a result of this change regression is gone:
      SqrtIndirect-4  7.86ns ± 0%  2.33ns ± 0%  -70.36%  (p=0.000 n=18+17)
      
      This also removes old Sqrt benchmarks, in favor of benchmarks measuring latency.
      Only SqrtIndirect is kept, to show impact of this patch.
      
      Change-Id: Ic7eebe8866445adff5bc38192fa8d64c9a6b8872
      Reviewed-on: https://go-review.googlesource.com/28392
      Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      6e703ae7
    • Josh Bleecher Snyder's avatar
      cmd/go: run mkalldocs.sh · 6bcca5e9
      Josh Bleecher Snyder authored
      This should have happened as part of CL 28485.
      
      Change-Id: I63cd31303e542ceaec3f4002c5573f186a1e9a52
      Reviewed-on: https://go-review.googlesource.com/28547
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      6bcca5e9
    • Cherry Zhang's avatar
      cmd/compile: fix intrinsifying sync/atomic.Swap* on AMD64 · 644c16c7
      Cherry Zhang authored
      It should alias to Xchg instead of Swap. Found when testing #16985.
      
      Change-Id: If9fd734a1f89b8b2656f421eb31b9d1b0d95a49f
      Reviewed-on: https://go-review.googlesource.com/28512
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      644c16c7
    • Cherry Zhang's avatar
      cmd/compile: mark some AMD64 atomic ops as clobberFlags · f1ef5a06
      Cherry Zhang authored
      Fixes #16985.
      
      Change-Id: I5954db28f7b70dd3ac7768e471d5df871a5b20f9
      Reviewed-on: https://go-review.googlesource.com/28510
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      f1ef5a06
    • Brad Fitzpatrick's avatar
      syscall: add yet more TestGetfsstat debugging · 6db13e07
      Brad Fitzpatrick authored
      Updates #16937
      
      Change-Id: I98aa203176f8f2ca2fcca6e334a65bc60d6f824d
      Reviewed-on: https://go-review.googlesource.com/28535Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      6db13e07
    • Erik Staab's avatar
      runtime: remove redundant expression from SetFinalizer · 66121ce8
      Erik Staab authored
      The previous if condition already checks the same expression and doesn't
      have side effects.
      
      Change-Id: Ieaf30a786572b608d0a883052b45fd3f04bc6147
      Reviewed-on: https://go-review.googlesource.com/28475Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      66121ce8
  2. 05 Sep, 2016 7 commits
  3. 04 Sep, 2016 11 commits
  4. 03 Sep, 2016 2 commits
  5. 02 Sep, 2016 12 commits