1. 31 Aug, 2016 12 commits
    • Denis Nagorny's avatar
      runtime: improve memmove for amd64 · 3607c5f4
      Denis Nagorny authored
      Use AVX if available on 4th generation of Intel(TM) Core(TM) processors.
      
      (collected on E5 2609v3 @1.9GHz)
      name                        old speed      new speed       delta
      Memmove/1-6                  158MB/s ± 0%    172MB/s ± 0%    +9.09% (p=0.000 n=16+16)
      Memmove/2-6                  316MB/s ± 0%    345MB/s ± 0%    +9.09% (p=0.000 n=18+16)
      Memmove/3-6                  517MB/s ± 0%    517MB/s ± 0%      ~ (p=0.445 n=16+16)
      Memmove/4-6                  687MB/s ± 1%    690MB/s ± 0%    +0.35% (p=0.000 n=20+17)
      Memmove/5-6                  729MB/s ± 0%    729MB/s ± 0%    +0.01% (p=0.000 n=16+18)
      Memmove/6-6                  875MB/s ± 0%    875MB/s ± 0%    +0.01% (p=0.000 n=18+18)
      Memmove/7-6                 1.02GB/s ± 0%   1.02GB/s ± 1%      ~ (p=0.139 n=19+20)
      Memmove/8-6                 1.26GB/s ± 0%   1.26GB/s ± 0%    +0.00% (p=0.000 n=18+18)
      Memmove/9-6                 1.42GB/s ± 0%   1.42GB/s ± 0%    +0.00% (p=0.000 n=17+18)
      Memmove/10-6                1.58GB/s ± 0%   1.58GB/s ± 0%    +0.00% (p=0.000 n=19+19)
      Memmove/11-6                1.74GB/s ± 0%   1.74GB/s ± 0%    +0.00% (p=0.001 n=18+17)
      Memmove/12-6                1.90GB/s ± 0%   1.90GB/s ± 0%    +0.00% (p=0.000 n=19+19)
      Memmove/13-6                2.05GB/s ± 0%   2.05GB/s ± 0%    +0.00% (p=0.000 n=18+19)
      Memmove/14-6                2.21GB/s ± 0%   2.21GB/s ± 0%    +0.00% (p=0.000 n=16+20)
      Memmove/15-6                2.37GB/s ± 0%   2.37GB/s ± 0%    +0.00% (p=0.004 n=19+20)
      Memmove/16-6                2.53GB/s ± 0%   2.53GB/s ± 0%    +0.00% (p=0.000 n=16+16)
      Memmove/32-6                4.67GB/s ± 0%   4.67GB/s ± 0%    +0.00% (p=0.000 n=17+17)
      Memmove/64-6                8.67GB/s ± 0%   8.64GB/s ± 0%    -0.33% (p=0.000 n=18+17)
      Memmove/128-6               12.6GB/s ± 0%   11.6GB/s ± 0%    -8.05% (p=0.000 n=16+19)
      Memmove/256-6               16.3GB/s ± 0%   16.6GB/s ± 0%    +1.66% (p=0.000 n=20+18)
      Memmove/512-6               21.5GB/s ± 0%   24.4GB/s ± 0%   +13.35% (p=0.000 n=18+17)
      Memmove/1024-6              24.7GB/s ± 0%   33.7GB/s ± 0%   +36.12% (p=0.000 n=18+18)
      Memmove/2048-6              27.3GB/s ± 0%   43.3GB/s ± 0%   +58.77% (p=0.000 n=19+17)
      Memmove/4096-6              37.5GB/s ± 0%   50.5GB/s ± 0%   +34.56% (p=0.000 n=19+19)
      MemmoveUnalignedDst/1-6      135MB/s ± 0%    146MB/s ± 0%    +7.69% (p=0.000 n=16+14)
      MemmoveUnalignedDst/2-6      271MB/s ± 0%    292MB/s ± 0%    +7.69% (p=0.000 n=18+18)
      MemmoveUnalignedDst/3-6      438MB/s ± 0%    438MB/s ± 0%      ~ (p=0.352 n=16+19)
      MemmoveUnalignedDst/4-6      584MB/s ± 0%    584MB/s ± 0%      ~ (p=0.876 n=17+17)
      MemmoveUnalignedDst/5-6      631MB/s ± 1%    632MB/s ± 0%    +0.25% (p=0.000 n=20+17)
      MemmoveUnalignedDst/6-6      759MB/s ± 0%    759MB/s ± 0%    +0.00% (p=0.000 n=19+16)
      MemmoveUnalignedDst/7-6      885MB/s ± 0%    883MB/s ± 1%      ~ (p=0.647 n=18+20)
      MemmoveUnalignedDst/8-6     1.08GB/s ± 0%   1.08GB/s ± 0%    +0.00% (p=0.035 n=19+18)
      MemmoveUnalignedDst/9-6     1.22GB/s ± 0%   1.22GB/s ± 0%      ~ (p=0.251 n=18+17)
      MemmoveUnalignedDst/10-6    1.35GB/s ± 0%   1.35GB/s ± 0%      ~ (p=0.327 n=17+18)
      MemmoveUnalignedDst/11-6    1.49GB/s ± 0%   1.49GB/s ± 0%      ~ (p=0.531 n=18+19)
      MemmoveUnalignedDst/12-6    1.63GB/s ± 0%   1.63GB/s ± 0%      ~ (p=0.886 n=19+18)
      MemmoveUnalignedDst/13-6    1.76GB/s ± 0%   1.76GB/s ± 1%    -0.24% (p=0.006 n=18+20)
      MemmoveUnalignedDst/14-6    1.90GB/s ± 0%   1.90GB/s ± 0%      ~ (p=0.818 n=20+19)
      MemmoveUnalignedDst/15-6    2.03GB/s ± 0%   2.03GB/s ± 0%      ~ (p=0.294 n=17+16)
      MemmoveUnalignedDst/16-6    2.17GB/s ± 0%   2.17GB/s ± 0%      ~ (p=0.602 n=16+18)
      MemmoveUnalignedDst/32-6    4.05GB/s ± 0%   4.05GB/s ± 0%    +0.00% (p=0.010 n=18+17)
      MemmoveUnalignedDst/64-6    7.59GB/s ± 0%   7.59GB/s ± 0%    +0.00% (p=0.022 n=18+16)
      MemmoveUnalignedDst/128-6   11.1GB/s ± 0%   11.4GB/s ± 0%    +2.79% (p=0.000 n=18+17)
      MemmoveUnalignedDst/256-6   16.4GB/s ± 0%   16.7GB/s ± 0%    +1.59% (p=0.000 n=20+17)
      MemmoveUnalignedDst/512-6   15.7GB/s ± 0%   21.3GB/s ± 0%   +35.87% (p=0.000 n=18+20)
      MemmoveUnalignedDst/1024-6  16.0GB/s ±20%   31.5GB/s ± 0%   +96.93% (p=0.000 n=20+14)
      MemmoveUnalignedDst/2048-6  19.6GB/s ± 0%   42.1GB/s ± 0%  +115.16% (p=0.000 n=17+18)
      MemmoveUnalignedDst/4096-6  6.41GB/s ± 0%  33.18GB/s ± 0%  +417.56% (p=0.000 n=17+18)
      MemmoveUnalignedSrc/1-6      171MB/s ± 0%    166MB/s ± 0%    -3.33% (p=0.000 n=19+16)
      MemmoveUnalignedSrc/2-6      343MB/s ± 0%    342MB/s ± 1%    -0.41% (p=0.000 n=17+20)
      MemmoveUnalignedSrc/3-6      508MB/s ± 0%    493MB/s ± 1%    -2.90% (p=0.000 n=17+17)
      MemmoveUnalignedSrc/4-6      677MB/s ± 0%    660MB/s ± 2%    -2.55% (p=0.000 n=17+20)
      MemmoveUnalignedSrc/5-6      790MB/s ± 0%    790MB/s ± 0%      ~ (p=0.139 n=17+17)
      MemmoveUnalignedSrc/6-6      948MB/s ± 0%    946MB/s ± 1%      ~ (p=0.330 n=17+19)
      MemmoveUnalignedSrc/7-6     1.11GB/s ± 0%   1.11GB/s ± 0%    -0.05% (p=0.026 n=17+17)
      MemmoveUnalignedSrc/8-6     1.38GB/s ± 0%   1.38GB/s ± 0%      ~ (p=0.091 n=18+16)
      MemmoveUnalignedSrc/9-6     1.42GB/s ± 0%   1.40GB/s ± 1%    -1.04% (p=0.000 n=19+20)
      MemmoveUnalignedSrc/10-6    1.58GB/s ± 0%   1.56GB/s ± 1%    -1.15% (p=0.000 n=18+19)
      MemmoveUnalignedSrc/11-6    1.73GB/s ± 0%   1.71GB/s ± 1%    -1.30% (p=0.000 n=20+20)
      MemmoveUnalignedSrc/12-6    1.89GB/s ± 0%   1.87GB/s ± 1%    -1.18% (p=0.000 n=17+20)
      MemmoveUnalignedSrc/13-6    2.05GB/s ± 0%   2.02GB/s ± 1%    -1.18% (p=0.000 n=17+20)
      MemmoveUnalignedSrc/14-6    2.21GB/s ± 0%   2.18GB/s ± 1%    -1.14% (p=0.000 n=17+20)
      MemmoveUnalignedSrc/15-6    2.36GB/s ± 0%   2.34GB/s ± 1%    -1.04% (p=0.000 n=17+20)
      MemmoveUnalignedSrc/16-6    2.52GB/s ± 0%   2.49GB/s ± 1%    -1.26% (p=0.000 n=19+20)
      MemmoveUnalignedSrc/32-6    4.82GB/s ± 0%   4.61GB/s ± 0%    -4.40% (p=0.000 n=19+20)
      MemmoveUnalignedSrc/64-6    5.03GB/s ± 4%   7.97GB/s ± 0%   +58.55% (p=0.000 n=20+16)
      MemmoveUnalignedSrc/128-6   11.1GB/s ± 0%   11.2GB/s ± 0%    +0.52% (p=0.000 n=17+18)
      MemmoveUnalignedSrc/256-6   16.5GB/s ± 0%   16.4GB/s ± 0%    -0.10% (p=0.000 n=20+18)
      MemmoveUnalignedSrc/512-6   21.0GB/s ± 0%   22.1GB/s ± 0%    +5.48% (p=0.000 n=14+17)
      MemmoveUnalignedSrc/1024-6  24.9GB/s ± 0%   31.9GB/s ± 0%   +28.20% (p=0.000 n=19+20)
      MemmoveUnalignedSrc/2048-6  23.3GB/s ± 0%   33.8GB/s ± 0%   +45.22% (p=0.000 n=17+19)
      MemmoveUnalignedSrc/4096-6  37.3GB/s ± 0%   42.7GB/s ± 0%   +14.30% (p=0.000 n=17+17)
      
      Change-Id: Iab488d93a293cdf573ab5cd89b95a818bbb5d531
      Reviewed-on: https://go-review.googlesource.com/22515
      Run-TryBot: Denis Nagorny <denis.nagorny@intel.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      3607c5f4
    • Ilya Tocar's avatar
      cmd/internal/obj/x86: Make VPSHUFD accept negative constant · 04ade8e4
      Ilya Tocar authored
      This partially reverts commit 4e24e1d9.
      Since in release 1.7 VPSHUFD support negative constant as an argument,
      removing it as part of 4e24e1d9 was wrong.
      Add it back.
      
      Change-Id: Id1a3e062fe8fb4cf538edb3f9970f0664f3f545f
      Reviewed-on: https://go-review.googlesource.com/27712
      Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      04ade8e4
    • Radu Berinde's avatar
      hash/crc32: cleanup code and improve tests · bdde1013
      Radu Berinde authored
      Major reorganization of the crc32 code:
      
       - The arch-specific files now implement a well-defined interface
         (documented in crc32.go). They no longer have the responsibility of
         initializing and falling back to a non-accelerated implementation;
         instead, that happens in the higher level code.
      
       - The non-accelerated algorithms are moved to a separate file with no
         dependencies on other code.
      
       - The "cutoff" optimization for slicing-by-8 is moved inside the
         algorithm itself (as opposed to every callsite).
      
      Tests are significantly improved:
       - direct tests for the non-accelerated algorithms.
       - "cross-check" tests for arch-specific implementations (all archs).
       - tests for misaligned buffers for both IEEE and Castagnoli.
      
      Fixes #16909.
      
      Change-Id: I9b6dd83b7a57cd615eae901c0a6d61c6b8091c74
      Reviewed-on: https://go-review.googlesource.com/27935Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      bdde1013
    • Ilya Tocar's avatar
      math: speed up bessel functions on AMD64 · 2a2cab29
      Ilya Tocar authored
      J0-4            71.9ns ± 1%  54.6ns ± 0%  -24.08%  (p=0.000 n=20+18)
      J1-4            71.6ns ± 0%  55.4ns ± 0%  -22.60%  (p=0.000 n=19+20)
      Jn-4             153ns ± 0%   118ns ± 1%  -22.71%  (p=0.000 n=20+20)
      Y0-4            70.8ns ± 0%  53.9ns ± 0%  -23.87%  (p=0.000 n=19+19)
      Y1-4            70.8ns ± 0%  54.1ns ± 0%  -23.54%  (p=0.000 n=20+20)
      Yn-4             149ns ± 0%   116ns ± 0%  -22.15%  (p=0.000 n=19+20)
      
      Fixes #16889
      
      Change-Id: Ie88496407b42f6acb918ffae1226b1b4c0500cb9
      Reviewed-on: https://go-review.googlesource.com/28086
      Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      2a2cab29
    • Alex Brainman's avatar
      cmd/link, cmd/go: delay linking of mingwex and mingw32 until very end · dfbbe06a
      Alex Brainman authored
      cmd/go links mingwex and mingw32 libraries to every package it builds.
      This breaks when 2 different packages call same gcc standard library
      function pow. gcc linker appends pow implementation to the compiled
      package, and names that function "pow". But when these 2 compiled
      packages are linked together into the final executable, linker
      complains, because it finds two "pow" functions with the same name.
      
      This CL stops linking of mingwex and mingw32 during package build -
      that leaves pow function reference unresolved. pow reference gets
      resolved as final executable is built, by having both internal and
      external linker use mingwex and mingw32 libraries.
      
      Fixes #8756
      
      Change-Id: I50ddc79529ea5463c67118d668488345ecf069bc
      Reviewed-on: https://go-review.googlesource.com/26670
      Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      dfbbe06a
    • Brad Fitzpatrick's avatar
      syscall: add some debugging to TestGetfsstat · b040bc9c
      Brad Fitzpatrick authored
      TestGetfsstat is failing on OS X 10.8.
      
      Not sure why. Add more debug info.
      
      Change-Id: I7dabb70dd7aeffda7e8959103db9e4886b84741e
      Reviewed-on: https://go-review.googlesource.com/28220Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      b040bc9c
    • Kevin Burke's avatar
      crypto/sha256: add examples for New, Sum256 · 448d3952
      Kevin Burke authored
      The goal for these examples is to show how to mirror the
      functionality of the sha256sum Unix utility, a common checksumming
      tool, using the Go standard library.
      
      Add a newline at the end of the input, so users will get the same
      output if they type `echo 'hello world' | sha256sum`, since the
      builtin shell echo appends a newline by default. Also use hex output
      (instead of the shorter base64) since this is the default output
      encoding for shasum/sha256sum.
      
      Change-Id: I0036874b3cc5ba85432bfcb86f81b51c4e0238fd
      Reviewed-on: https://go-review.googlesource.com/24868Reviewed-by: 's avatarEmmanuel Odeke <emm.odeke@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      448d3952
    • Dave Cheney's avatar
      cmd/compile/internal/gc: clean up closure.go · 3968ac2c
      Dave Cheney authored
      Change-Id: I01bfab595c50582c5adf958dcecbd58524dbc28f
      Reviewed-on: https://go-review.googlesource.com/28212
      Run-TryBot: Dave Cheney <dave@cheney.net>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      3968ac2c
    • Joe Tsai's avatar
      compress/flate: always return uncompressed data in the event of error · d3092464
      Joe Tsai authored
      In the event of an unexpected error, we should always flush available
      decompressed data to the user.
      
      Fixes #16924
      
      Change-Id: I0bc0824c3201f3149e84e6a26e3dbcba72a1aae5
      Reviewed-on: https://go-review.googlesource.com/28216
      Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
      d3092464
    • Robert Griesemer's avatar
      doc: more tweaks to the FAQ · 6ebacf18
      Robert Griesemer authored
      Change-Id: I0a3726f841122643bd1680ef6bd450c2039f362b
      Reviewed-on: https://go-review.googlesource.com/28213Reviewed-by: 's avatarRob Pike <r@golang.org>
      6ebacf18
    • Brad Fitzpatrick's avatar
      net/http: make DefaultTransport's Dialer enable DualStack ("Happy Eyeballs") · 859cab09
      Brad Fitzpatrick authored
      As @pmarks-net said in the bug, this is something of a prisoner's
      dilemma, but it does help people who occasionally report problems.
      
      This is temporary. IPv6 is happening regardless of our decision here,
      so we'll do this for now.
      
      Fixes #15324
      
      Change-Id: I8cc29c6efa56222970996c71182fc9ee89d78539
      Reviewed-on: https://go-review.googlesource.com/28077
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
      859cab09
    • Bryan Alexander's avatar
      crypto/x509: Fix bug in UnknownAuthorityError.Error · 8e6948fe
      Bryan Alexander authored
      Fix bug in UnknownAuthorityError.Error that would never allow Org
      Name to be inserted into error message if the Common Name was empty.
      Create tests for all three paths in UnknownAuthorityError.Error
      
      Change-Id: Id8afc444e897ef549df682d93a8563fd9de22a2b
      Reviewed-on: https://go-review.googlesource.com/27992
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      8e6948fe
  2. 30 Aug, 2016 28 commits