1. 28 Aug, 2019 38 commits
    • LE Manh Cuong's avatar
      cmd/compile: fix wrong field type in scasetype · 400d0212
      LE Manh Cuong authored
      The only place set releasetime to negative is in runtime.selectgo
      (when blockprofilerate greater than zero), so we are safe in compiler
      code.
      
      But scasetype must keep in sync with runtime/select.go scase struct, so
      releasetime must be int64.
      
      Change-Id: I39ea944f5f2872452d3ffd57f7604d51e0d2590a
      Reviewed-on: https://go-review.googlesource.com/c/go/+/179799
      Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      400d0212
    • Matthew Dempsky's avatar
      cmd/compile: remove unused code from esc.go · 0b9b152e
      Matthew Dempsky authored
      Change-Id: Idb7b97ced559c40d4e3beae5c661c71825200af7
      Reviewed-on: https://go-review.googlesource.com/c/go/+/187598Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      0b9b152e
    • Matthew Dempsky's avatar
      cmd/compile: remove -newescape flag · 991b0fd4
      Matthew Dempsky authored
      Drops support for old escape analysis pass. Subsequent, separate CL
      will remove dead code.
      
      While here, fix a minor error in fmt.go: it was still looking for
      esc.go's NodeEscState in n.Opt() rather than escape.go's EscLocation.
      But this only affected debug diagnostics printed during escape
      analysis itself.
      
      Change-Id: I62512e1b31c75ba0577550a5fd7824abc3159ed5
      Reviewed-on: https://go-review.googlesource.com/c/go/+/187597Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      991b0fd4
    • Matthew Dempsky's avatar
      test: remove -newescape from regress tests · 501b786e
      Matthew Dempsky authored
      Prep for subsequent CLs to remove old escape analysis pass.
      
      This CL removes -newescape=true from tests that use it, and deletes
      tests that use -newescape=false. (For history, see CL 170447.)
      
      Notably, this removes escape_because.go without any replacement, but
      this is being tracked by #31489.
      
      Change-Id: I6f6058d58fff2c5d210cb1d2713200cc9f501ca7
      Reviewed-on: https://go-review.googlesource.com/c/go/+/187617
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      501b786e
    • Brad Fitzpatrick's avatar
      net/http: don't panic serving dir in ServeFile with empty Request.URL.Path · 7ed973b4
      Brad Fitzpatrick authored
      Updates #30165
      Updates #31622
      
      Change-Id: I7a4b91aa7c5c3af8c0b1273cbb42046feddf7d78
      Reviewed-on: https://go-review.googlesource.com/c/go/+/180499Reviewed-by: default avatarEmmanuel Odeke <emm.odeke@gmail.com>
      Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      7ed973b4
    • Ayan George's avatar
      runtime: simplify GOOS detection in mstart() · b3a1205a
      Ayan George authored
      The existing condition is long and repetitive.  Using select/case with
      multiple values in the expression list is more concise and clearer.
      
      Change-Id: I43f8abcf958e433468728f1d89ff1436332b29da
      Reviewed-on: https://go-review.googlesource.com/c/go/+/188519Reviewed-by: default avatarKeith Randall <khr@golang.org>
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      b3a1205a
    • Ian Lance Taylor's avatar
      test: add test that failed with gccgo · 47575187
      Ian Lance Taylor authored
      Updates #33739
      
      Change-Id: Ib7ce4bc51972fe49998f37f6e27baa6a2a036d5e
      Reviewed-on: https://go-review.googlesource.com/c/go/+/191001Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      47575187
    • Jordi Martin's avatar
      io: add error check on pipe close functions to avoid error overwriting · f45eb9ff
      Jordi Martin authored
      The current implementation allows multiple calls `Close` and `CloseWithError` in every side of the pipe, as a result, the original error can be overwritten.
      
      This CL fixes this behavior adding an error existence check on `atomicError` type
      and keeping the first error still available.
      
      Fixes #24283
      
      Change-Id: Iefe8f758aeb775309424365f8177511062514150
      GitHub-Last-Rev: b559540d7af3a0dad423816b695525ac2d6bd864
      GitHub-Pull-Request: golang/go#33239
      Reviewed-on: https://go-review.googlesource.com/c/go/+/187197Reviewed-by: default avatarJoe Tsai <thebrokentoaster@gmail.com>
      Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      f45eb9ff
    • empijei's avatar
      crypto/x509: allow nil Certificates to be compared in Equal · 89865f8b
      empijei authored
      The current implementation panics on nil certificates,
      so introduce a nil check and early return true if both
      are nil, false if only one is.
      
      Fixes #28743
      
      Change-Id: I71b0dee3e505d3ad562a4470ccc22c3a2579bc52
      Reviewed-on: https://go-review.googlesource.com/c/go/+/167118
      Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarEmmanuel Odeke <emm.odeke@gmail.com>
      89865f8b
    • Mostyn Bramley-Moore's avatar
      crypto/ecdsa: improve documentation readability · 84198445
      Mostyn Bramley-Moore authored
      Include references in the package-level comment block, expand
      the obscure IRO acronym, and add a reference for "the standard
      (cryptographic) assumptions".
      
      Fixes #33589
      
      Change-Id: I76c3b0a2f7258b3ab4bf1c8e7681c5d159720a20
      GitHub-Last-Rev: 30d5a1e2fbbbb577ccc819f5ef80d5238565c9f3
      GitHub-Pull-Request: golang/go#33723
      Reviewed-on: https://go-review.googlesource.com/c/go/+/190840Reviewed-by: default avatarFilippo Valsorda <filippo@golang.org>
      84198445
    • Eric Lagergren's avatar
      math/big: document that Rat.Denom might modify the receiver · 9dfa4cb0
      Eric Lagergren authored
      Fixes #33792
      
      Change-Id: I306a95883c3db2d674d3294a6feb50adc50ee5d6
      Reviewed-on: https://go-review.googlesource.com/c/go/+/192017Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      9dfa4cb0
    • Meng Zhuo's avatar
      runtime, cmd/compile: implement and use DUFFCOPY on MIPS64 · 307544f4
      Meng Zhuo authored
      OS: Linux loongson 3.10.84 mips64el
      CPU: Loongson 3A3000 quad core
      
      name                   old time/op    new time/op    delta
      BinaryTree17              23.5s ± 1%     23.2s ± 0%  -1.12%  (p=0.008 n=5+5)
      Fannkuch11                10.2s ± 0%     10.1s ± 0%  -0.19%  (p=0.008 n=5+5)
      FmtFprintfEmpty           450ns ± 0%     446ns ± 1%  -0.89%  (p=0.024 n=5+5)
      FmtFprintfString          722ns ± 1%     721ns ± 1%    ~     (p=0.762 n=5+5)
      FmtFprintfInt             693ns ± 2%     691ns ± 2%    ~     (p=0.889 n=5+5)
      FmtFprintfIntInt          912ns ± 1%     911ns ± 0%    ~     (p=0.722 n=5+5)
      FmtFprintfPrefixedInt    1.35µs ± 2%    1.35µs ± 2%    ~     (p=1.000 n=5+5)
      FmtFprintfFloat          1.79µs ± 0%    1.78µs ± 0%    ~     (p=0.683 n=5+5)
      FmtManyArgs              3.46µs ± 1%    3.48µs ± 1%    ~     (p=0.246 n=5+5)
      GobDecode                48.8ms ± 1%    48.6ms ± 0%    ~     (p=0.222 n=5+5)
      GobEncode                37.7ms ± 1%    37.4ms ± 1%    ~     (p=0.095 n=5+5)
      Gzip                      1.72s ± 1%     1.72s ± 0%    ~     (p=0.905 n=5+4)
      Gunzip                    342ms ± 0%     342ms ± 0%    ~     (p=0.421 n=5+5)
      HTTPClientServer          219µs ± 1%     219µs ± 1%    ~     (p=1.000 n=5+5)
      JSONEncode               89.1ms ± 1%    89.4ms ± 1%    ~     (p=0.222 n=5+5)
      JSONDecode                292ms ± 1%     291ms ± 0%    ~     (p=0.421 n=5+5)
      Mandelbrot200            15.7ms ± 0%    15.6ms ± 0%    ~     (p=0.690 n=5+5)
      GoParse                  19.5ms ± 1%    19.6ms ± 1%    ~     (p=0.310 n=5+5)
      RegexpMatchEasy0_32       534ns ± 1%     529ns ± 1%    ~     (p=0.056 n=5+5)
      RegexpMatchEasy0_1K      2.75µs ± 0%    2.74µs ± 0%  -0.46%  (p=0.008 n=5+5)
      RegexpMatchEasy1_32       572ns ± 2%     565ns ± 3%    ~     (p=0.310 n=5+5)
      RegexpMatchEasy1_1K      4.15µs ± 0%    4.15µs ± 1%    ~     (p=0.548 n=5+5)
      RegexpMatchMedium_32     31.2ns ± 0%    31.1ns ± 0%  -0.45%  (p=0.016 n=5+4)
      RegexpMatchMedium_1K      235µs ± 1%     235µs ± 0%    ~     (p=1.000 n=5+5)
      RegexpMatchHard_32       13.9µs ± 1%    13.5µs ± 1%  -2.74%  (p=0.008 n=5+5)
      RegexpMatchHard_1K        416µs ± 2%     410µs ± 2%    ~     (p=0.056 n=5+5)
      Revcomp                   6.36s ± 0%     6.34s ± 0%  -0.31%  (p=0.008 n=5+5)
      Template                  352ms ± 1%     353ms ± 0%  +0.45%  (p=0.032 n=5+5)
      TimeParse                2.04µs ± 4%    2.01µs ± 0%    ~     (p=0.056 n=5+5)
      TimeFormat               2.97µs ± 0%    2.97µs ± 0%    ~     (p=1.000 n=5+5)
      
      name                   old speed      new speed      delta
      GobDecode              15.7MB/s ± 1%  15.8MB/s ± 0%    ~     (p=0.206 n=5+5)
      GobEncode              20.4MB/s ± 1%  20.5MB/s ± 1%    ~     (p=0.056 n=5+5)
      Gzip                   11.3MB/s ± 1%  11.3MB/s ± 0%    ~     (p=0.841 n=5+4)
      Gunzip                 56.7MB/s ± 0%  56.8MB/s ± 0%    ~     (p=0.389 n=5+5)
      JSONEncode             21.8MB/s ± 1%  21.7MB/s ± 1%    ~     (p=0.246 n=5+5)
      JSONDecode             6.66MB/s ± 0%  6.67MB/s ± 0%    ~     (p=0.857 n=4+5)
      GoParse                2.97MB/s ± 1%  2.96MB/s ± 1%    ~     (p=0.238 n=5+5)
      RegexpMatchEasy0_32    59.9MB/s ± 1%  60.5MB/s ± 1%  +0.92%  (p=0.032 n=5+5)
      RegexpMatchEasy0_1K     372MB/s ± 0%   374MB/s ± 0%  +0.46%  (p=0.008 n=5+5)
      RegexpMatchEasy1_32    56.0MB/s ± 2%  56.7MB/s ± 3%    ~     (p=0.310 n=5+5)
      RegexpMatchEasy1_1K     247MB/s ± 0%   247MB/s ± 1%    ~     (p=0.548 n=5+5)
      RegexpMatchMedium_32   32.0MB/s ± 0%  32.1MB/s ± 0%    ~     (p=0.135 n=5+5)
      RegexpMatchMedium_1K   4.35MB/s ± 1%  4.35MB/s ± 1%    ~     (p=0.825 n=5+5)
      RegexpMatchHard_32     2.30MB/s ± 1%  2.37MB/s ± 1%  +2.78%  (p=0.008 n=5+5)
      RegexpMatchHard_1K     2.47MB/s ± 1%  2.50MB/s ± 2%    ~     (p=0.095 n=5+5)
      Revcomp                40.0MB/s ± 0%  40.1MB/s ± 0%  +0.31%  (p=0.016 n=5+5)
      Template               5.51MB/s ± 1%  5.49MB/s ± 0%    ~     (p=0.190 n=5+5)
      
      Change-Id: I540a2e4e7992376ce04f93b332f64fc3b6071237
      Reviewed-on: https://go-review.googlesource.com/c/go/+/185078Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      307544f4
    • Tobias Klauser's avatar
      syscall: move Renameat to syscall_linux_$GOARCH.go · b58d9bb8
      Tobias Klauser authored
      On linux/riscv64, the renameat syscall no longer exists and has been
      superseded by renameat2. Thus we'll have to use Renameat2 to implement
      Renameat on linux/riscv64 for #27532. Prepare for this by moving the
      Renameat definition to the GOARCH specific files.
      
      Follow CL 157899 which did the same for golang.org/x/sys/unix
      
      Change-Id: I9670213cc3987df48fee962ddee36915a7785560
      Reviewed-on: https://go-review.googlesource.com/c/go/+/192077
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      b58d9bb8
    • Ben Shi's avatar
      cmd/compile: optimize ARM's math.bits.RotateLeft32 · 3cfd003a
      Ben Shi authored
      This CL optimizes math.bits.RotateLeft32 to inline
      "MOVW Rx@>Ry, Rd" on ARM.
      
      The benchmark results of math/bits show some improvements.
      name               old time/op  new time/op  delta
      RotateLeft-4       9.42ns ± 0%  6.91ns ± 0%  -26.66%  (p=0.000 n=40+33)
      RotateLeft8-4      8.79ns ± 0%  8.79ns ± 0%   -0.04%  (p=0.000 n=40+31)
      RotateLeft16-4     8.79ns ± 0%  8.79ns ± 0%   -0.04%  (p=0.000 n=40+32)
      RotateLeft32-4     8.16ns ± 0%  7.54ns ± 0%   -7.68%  (p=0.000 n=40+40)
      RotateLeft64-4     15.7ns ± 0%  15.7ns ± 0%     ~     (all equal)
      
      updates #31265
      
      Change-Id: I77bc1c2c702d5323fc7cad5264a8e2d5666bf712
      Reviewed-on: https://go-review.googlesource.com/c/go/+/188697
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      3cfd003a
    • Ben Shi's avatar
      cmd/compile: optimize ARM's math.Abs · c683ab81
      Ben Shi authored
      This CL optimizes math.Abs to an inline ABSD instruction on ARM.
      
      The benchmark results of src/math/ show big improvements.
      name                   old time/op  new time/op  delta
      Acos-4                  181ns ± 0%   182ns ± 0%   +0.30%  (p=0.000 n=40+40)
      Acosh-4                 202ns ± 0%   202ns ± 0%     ~     (all equal)
      Asin-4                  163ns ± 0%   163ns ± 0%     ~     (all equal)
      Asinh-4                 242ns ± 0%   242ns ± 0%     ~     (all equal)
      Atan-4                  120ns ± 0%   121ns ± 0%   +0.83%  (p=0.000 n=40+40)
      Atanh-4                 202ns ± 0%   202ns ± 0%     ~     (all equal)
      Atan2-4                 173ns ± 0%   173ns ± 0%     ~     (all equal)
      Cbrt-4                 1.06µs ± 0%  1.06µs ± 0%   +0.09%  (p=0.000 n=39+37)
      Ceil-4                 72.9ns ± 0%  72.8ns ± 0%     ~     (p=0.237 n=40+40)
      Copysign-4             13.2ns ± 0%  13.2ns ± 0%     ~     (all equal)
      Cos-4                   193ns ± 0%   183ns ± 0%   -5.18%  (p=0.000 n=40+40)
      Cosh-4                  254ns ± 0%   239ns ± 0%   -5.91%  (p=0.000 n=40+40)
      Erf-4                   112ns ± 0%   112ns ± 0%     ~     (all equal)
      Erfc-4                  117ns ± 0%   117ns ± 0%     ~     (all equal)
      Erfinv-4                127ns ± 0%   127ns ± 1%     ~     (p=0.492 n=40+40)
      Erfcinv-4               128ns ± 0%   128ns ± 0%     ~     (all equal)
      Exp-4                   212ns ± 0%   206ns ± 0%   -3.05%  (p=0.000 n=40+40)
      ExpGo-4                 216ns ± 0%   209ns ± 0%   -3.24%  (p=0.000 n=40+40)
      Expm1-4                 142ns ± 0%   142ns ± 0%     ~     (all equal)
      Exp2-4                  191ns ± 0%   184ns ± 0%   -3.45%  (p=0.000 n=40+40)
      Exp2Go-4                194ns ± 0%   187ns ± 0%   -3.61%  (p=0.000 n=40+40)
      Abs-4                  14.4ns ± 0%   6.3ns ± 0%  -56.39%  (p=0.000 n=38+39)
      Dim-4                  12.6ns ± 0%  12.6ns ± 0%     ~     (all equal)
      Floor-4                49.6ns ± 0%  49.6ns ± 0%     ~     (all equal)
      Max-4                  27.6ns ± 0%  27.6ns ± 0%     ~     (all equal)
      Min-4                  27.0ns ± 0%  27.0ns ± 0%     ~     (all equal)
      Mod-4                   349ns ± 0%   305ns ± 1%  -12.55%  (p=0.000 n=33+40)
      Frexp-4                54.0ns ± 0%  47.1ns ± 0%  -12.78%  (p=0.000 n=38+38)
      Gamma-4                 242ns ± 0%   234ns ± 0%   -3.16%  (p=0.000 n=36+40)
      Hypot-4                84.8ns ± 0%  67.8ns ± 0%  -20.05%  (p=0.000 n=31+35)
      HypotGo-4              88.5ns ± 0%  71.6ns ± 0%  -19.12%  (p=0.000 n=40+38)
      Ilogb-4                45.8ns ± 0%  38.9ns ± 0%  -15.12%  (p=0.000 n=40+32)
      J0-4                    821ns ± 0%   802ns ± 0%   -2.33%  (p=0.000 n=33+40)
      J1-4                    816ns ± 0%   807ns ± 0%   -1.05%  (p=0.000 n=40+29)
      Jn-4                   1.67µs ± 0%  1.65µs ± 0%   -1.45%  (p=0.000 n=40+39)
      Ldexp-4                61.5ns ± 0%  54.6ns ± 0%  -11.27%  (p=0.000 n=40+32)
      Lgamma-4                188ns ± 0%   188ns ± 0%     ~     (all equal)
      Log-4                   154ns ± 0%   147ns ± 0%   -4.78%  (p=0.000 n=40+40)
      Logb-4                 50.9ns ± 0%  42.7ns ± 0%  -16.11%  (p=0.000 n=34+39)
      Log1p-4                 160ns ± 0%   159ns ± 0%     ~     (p=0.828 n=40+40)
      Log10-4                 173ns ± 0%   166ns ± 0%   -4.05%  (p=0.000 n=40+40)
      Log2-4                 65.3ns ± 0%  58.4ns ± 0%  -10.57%  (p=0.000 n=37+37)
      Modf-4                 36.4ns ± 0%  36.4ns ± 0%     ~     (all equal)
      Nextafter32-4          36.4ns ± 0%  36.4ns ± 0%     ~     (all equal)
      Nextafter64-4          32.7ns ± 0%  32.6ns ± 0%     ~     (p=0.375 n=40+40)
      PowInt-4                300ns ± 0%   277ns ± 0%   -7.78%  (p=0.000 n=40+40)
      PowFrac-4               676ns ± 0%   635ns ± 0%   -6.00%  (p=0.000 n=40+35)
      Pow10Pos-4             17.6ns ± 0%  17.6ns ± 0%     ~     (all equal)
      Pow10Neg-4             22.0ns ± 0%  22.0ns ± 0%     ~     (all equal)
      Round-4                30.1ns ± 0%  30.1ns ± 0%     ~     (all equal)
      RoundToEven-4          38.9ns ± 0%  38.9ns ± 0%     ~     (all equal)
      Remainder-4             291ns ± 0%   263ns ± 0%   -9.62%  (p=0.000 n=40+40)
      Signbit-4              11.3ns ± 0%  11.3ns ± 0%     ~     (all equal)
      Sin-4                   185ns ± 0%   185ns ± 0%     ~     (all equal)
      Sincos-4                230ns ± 0%   230ns ± 0%     ~     (all equal)
      Sinh-4                  253ns ± 0%   246ns ± 0%   -2.77%  (p=0.000 n=39+39)
      SqrtIndirect-4         41.4ns ± 0%  41.4ns ± 0%     ~     (all equal)
      SqrtLatency-4          13.8ns ± 0%  13.8ns ± 0%     ~     (all equal)
      SqrtIndirectLatency-4  37.0ns ± 0%  37.0ns ± 0%     ~     (p=0.632 n=40+40)
      SqrtGoLatency-4         911ns ± 0%   911ns ± 0%   +0.08%  (p=0.000 n=40+40)
      SqrtPrime-4            13.2µs ± 0%  13.2µs ± 0%   +0.01%  (p=0.038 n=38+40)
      Tan-4                   205ns ± 0%   205ns ± 0%     ~     (all equal)
      Tanh-4                  264ns ± 0%   247ns ± 0%   -6.44%  (p=0.000 n=39+32)
      Trunc-4                45.2ns ± 0%  45.2ns ± 0%     ~     (all equal)
      Y0-4                    796ns ± 0%   792ns ± 0%   -0.55%  (p=0.000 n=35+40)
      Y1-4                    804ns ± 0%   797ns ± 0%   -0.82%  (p=0.000 n=24+40)
      Yn-4                   1.64µs ± 0%  1.62µs ± 0%   -1.27%  (p=0.000 n=40+39)
      Float64bits-4          8.16ns ± 0%  8.16ns ± 0%   +0.04%  (p=0.000 n=35+40)
      Float64frombits-4      10.7ns ± 0%  10.7ns ± 0%     ~     (all equal)
      Float32bits-4          7.53ns ± 0%  7.53ns ± 0%     ~     (p=0.760 n=40+40)
      Float32frombits-4      6.91ns ± 0%  6.91ns ± 0%   -0.04%  (p=0.002 n=32+38)
      [Geo mean]              111ns        106ns        -3.98%
      
      Change-Id: I54f4fd7f5160db020b430b556bde59cc0fdb996d
      Reviewed-on: https://go-review.googlesource.com/c/go/+/188678
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      c683ab81
    • Meng Zhuo's avatar
      cmd/asm: add V[LD|ST][2-4] vector instructions on arm64 · 8403d4ea
      Meng Zhuo authored
      This change adds VLD2, VLD3, VLD4, VST2, VST3, VST4 (multiple structures)
      for image or multi media optimazation.
      
      Change-Id: Iae3538ef4434e436e3fb2f19153c58f918f773af
      Reviewed-on: https://go-review.googlesource.com/c/go/+/166518
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      8403d4ea
    • Illya Yalovyy's avatar
      math/big: fast path for Cmp if same · be452cea
      Illya Yalovyy authored
      math/big.Int Cmp method does not have a fast path for the case if x and y are the same.
      
      Fixes #30856
      
      Change-Id: Ia9a5b5f72db9d73af1b13ed6ac39ecff87d10393
      Reviewed-on: https://go-review.googlesource.com/c/go/+/178957
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      be452cea
    • Cherry Zhang's avatar
      cmd/compile: don't mark stack object symbol DUPOK · 1abe22c3
      Cherry Zhang authored
      Stack object symbol is named as <FunctionName>.stkobj. If the
      function itself is not DUPOK, its stack object symbol should only
      be defined in the package where the function is defined,
      therefore no duplicates.
      
      If in the future we change the stack object symbol to
      content-hash naming, as other gcdata symbols, we can mark it as
      DUPOK.
      
      Change-Id: I5aee96578940e2f76e7115d96cd2716021672c03
      Reviewed-on: https://go-review.googlesource.com/c/go/+/191437
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      1abe22c3
    • Daniel Martí's avatar
      net/http: fix a long test after CL 185117 · 81fde0c9
      Daniel Martí authored
      The net/url error in question now quotes the URL, so update the expected
      output string.
      
      While at it, also update a comment in httputil, though that doesn't
      affect any test.
      
      Fixes #33910.
      
      Change-Id: I0981f528b24337c2952ef60c0db3b7ff72d72110
      Reviewed-on: https://go-review.googlesource.com/c/go/+/192078
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      81fde0c9
    • Bryan C. Mills's avatar
      Revert "cmd/compile: optimize 386's math.bits.TrailingZeros16" · 372b0eed
      Bryan C. Mills authored
      This reverts CL 189277.
      
      Reason for revert: broke 32-bit builders.
      
      Updates #33902
      
      Change-Id: Ie5f180d0371a90e5057ed578c334372e5fc3a286
      Reviewed-on: https://go-review.googlesource.com/c/go/+/192097
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      372b0eed
    • Nao YONASHIRO's avatar
      compress/flate: improve deflate performance by register allocating the index · bc92fe8b
      Nao YONASHIRO authored
      Use local index variable to help the go compiler use a
      register to for the hash index instead of continuous
      memory read and write operations.
      
      compress/flate:
      Encode/Digits/Huffman/1e4-4        35.3µs ± 1%    32.7µs ± 0%  -7.48%  (p=0.000 n=17+19)
      Encode/Digits/Huffman/1e5-4         330µs ± 0%     312µs ± 0%  -5.55%  (p=0.000 n=17+18)
      Encode/Digits/Huffman/1e6-4        3.30ms ± 0%    3.12ms ± 0%  -5.64%  (p=0.000 n=18+19)
      Encode/Digits/Speed/1e4-4           157µs ± 0%     156µs ± 0%  -0.41%  (p=0.000 n=17+19)
      Encode/Digits/Speed/1e5-4          1.46ms ± 0%    1.46ms ± 1%    ~     (p=0.478 n=20+19)
      Encode/Digits/Speed/1e6-4          14.4ms ± 0%    14.4ms ± 0%    ~     (p=0.835 n=19+20)
      Encode/Digits/Default/1e4-4         309µs ± 0%     310µs ± 0%  +0.23%  (p=0.000 n=19+17)
      Encode/Digits/Default/1e5-4        4.76ms ± 0%    4.76ms ± 0%    ~     (p=0.297 n=19+19)
      Encode/Digits/Default/1e6-4        51.0ms ± 0%    51.0ms ± 1%    ~     (p=0.233 n=18+19)
      Encode/Digits/Compression/1e4-4     309µs ± 0%     310µs ± 0%  +0.21%  (p=0.000 n=17+20)
      Encode/Digits/Compression/1e5-4    4.76ms ± 0%    4.76ms ± 0%    ~     (p=0.749 n=20+19)
      Encode/Digits/Compression/1e6-4    50.9ms ± 0%    50.9ms ± 0%    ~     (p=0.499 n=18+19)
      Encode/Newton/Huffman/1e4-4        51.9µs ± 0%    48.0µs ± 0%  -7.61%  (p=0.000 n=19+19)
      Encode/Newton/Huffman/1e5-4         396µs ± 0%     377µs ± 0%  -4.79%  (p=0.000 n=18+19)
      Encode/Newton/Huffman/1e6-4        3.95ms ± 0%    3.74ms ± 0%  -5.21%  (p=0.000 n=20+17)
      Encode/Newton/Speed/1e4-4           155µs ± 0%     154µs ± 0%  -0.67%  (p=0.000 n=17+18)
      Encode/Newton/Speed/1e5-4          1.17ms ± 0%    1.16ms ± 0%  -0.64%  (p=0.000 n=20+16)
      Encode/Newton/Speed/1e6-4          11.6ms ± 0%    11.5ms ± 0%  -0.63%  (p=0.000 n=19+20)
      Encode/Newton/Default/1e4-4         347µs ± 0%     347µs ± 0%    ~     (p=0.744 n=20+19)
      Encode/Newton/Default/1e5-4        5.06ms ± 0%    5.02ms ± 0%  -0.77%  (p=0.000 n=20+19)
      Encode/Newton/Default/1e6-4        53.3ms ± 1%    52.8ms ± 0%  -0.91%  (p=0.000 n=18+16)
      Encode/Newton/Compression/1e4-4     351µs ± 0%     351µs ± 0%    ~     (p=0.277 n=20+20)
      Encode/Newton/Compression/1e5-4    6.90ms ± 0%    6.85ms ± 0%  -0.61%  (p=0.000 n=19+18)
      Encode/Newton/Compression/1e6-4    73.2ms ± 0%    72.8ms ± 0%  -0.52%  (p=0.000 n=18+18)
      
      name                             old speed      new speed      delta
      Encode/Digits/Huffman/1e4-4       283MB/s ± 1%   306MB/s ± 0%  +8.09%  (p=0.000 n=17+19)
      Encode/Digits/Huffman/1e5-4       303MB/s ± 0%   321MB/s ± 0%  +5.87%  (p=0.000 n=18+18)
      Encode/Digits/Huffman/1e6-4       303MB/s ± 0%   321MB/s ± 0%  +5.98%  (p=0.000 n=18+19)
      Encode/Digits/Speed/1e4-4        63.9MB/s ± 0%  64.2MB/s ± 0%  +0.41%  (p=0.000 n=17+19)
      Encode/Digits/Speed/1e5-4        68.5MB/s ± 0%  68.4MB/s ± 1%    ~     (p=0.481 n=20+19)
      Encode/Digits/Speed/1e6-4        69.4MB/s ± 0%  69.3MB/s ± 0%    ~     (p=0.712 n=19+20)
      Encode/Digits/Default/1e4-4      32.3MB/s ± 0%  32.3MB/s ± 0%  -0.23%  (p=0.000 n=19+17)
      Encode/Digits/Default/1e5-4      21.0MB/s ± 0%  21.0MB/s ± 0%    ~     (p=0.460 n=19+19)
      Encode/Digits/Default/1e6-4      19.6MB/s ± 0%  19.6MB/s ± 1%    ~     (p=0.180 n=18+19)
      Encode/Digits/Compression/1e4-4  32.3MB/s ± 0%  32.3MB/s ± 0%  -0.21%  (p=0.000 n=17+20)
      Encode/Digits/Compression/1e5-4  21.0MB/s ± 0%  21.0MB/s ± 0%    ~     (p=0.700 n=20+19)
      Encode/Digits/Compression/1e6-4  19.6MB/s ± 0%  19.6MB/s ± 0%    ~     (p=0.486 n=18+19)
      Encode/Newton/Huffman/1e4-4       193MB/s ± 0%   208MB/s ± 0%  +8.23%  (p=0.000 n=19+19)
      Encode/Newton/Huffman/1e5-4       252MB/s ± 0%   265MB/s ± 0%  +5.04%  (p=0.000 n=18+19)
      Encode/Newton/Huffman/1e6-4       253MB/s ± 0%   267MB/s ± 0%  +5.49%  (p=0.000 n=20+17)
      Encode/Newton/Speed/1e4-4        64.5MB/s ± 0%  65.0MB/s ± 0%  +0.67%  (p=0.000 n=17+18)
      Encode/Newton/Speed/1e5-4        85.7MB/s ± 0%  86.3MB/s ± 0%  +0.65%  (p=0.000 n=20+16)
      Encode/Newton/Speed/1e6-4        86.2MB/s ± 0%  86.7MB/s ± 0%  +0.63%  (p=0.000 n=19+20)
      Encode/Newton/Default/1e4-4      28.9MB/s ± 0%  28.9MB/s ± 0%    ~     (p=0.840 n=20+19)
      Encode/Newton/Default/1e5-4      19.8MB/s ± 0%  19.9MB/s ± 0%  +0.78%  (p=0.000 n=20+19)
      Encode/Newton/Default/1e6-4      18.8MB/s ± 1%  18.9MB/s ± 0%  +0.93%  (p=0.000 n=18+16)
      Encode/Newton/Compression/1e4-4  28.5MB/s ± 0%  28.5MB/s ± 0%    ~     (p=0.244 n=20+20)
      Encode/Newton/Compression/1e5-4  14.5MB/s ± 0%  14.6MB/s ± 0%  +0.61%  (p=0.000 n=19+18)
      Encode/Newton/Compression/1e6-4  13.7MB/s ± 0%  13.7MB/s ± 0%  +0.53%  (p=0.000 n=18+18)
      
      image/png:
      name                        old time/op    new time/op    delta
      EncodeGray-4                  2.16ms ± 1%    1.85ms ± 1%  -14.17%  (p=0.000 n=86+91)
      EncodeGrayWithBufferPool-4    1.99ms ± 0%    1.69ms ± 0%  -15.09%  (p=0.000 n=97+94)
      EncodeNRGBOpaque-4            6.51ms ± 1%    5.62ms ± 1%  -13.66%  (p=0.000 n=90+92)
      EncodeNRGBA-4                 7.33ms ± 1%    6.12ms ± 1%  -16.49%  (p=0.000 n=89+90)
      EncodePaletted-4              5.10ms ± 1%    4.96ms ± 1%   -2.76%  (p=0.000 n=90+87)
      EncodeRGBOpaque-4             6.51ms ± 1%    5.63ms ± 1%  -13.49%  (p=0.000 n=94+87)
      EncodeRGBA-4                  24.3ms ± 2%    23.0ms ± 0%   -5.23%  (p=0.000 n=91+89)
      
      name                        old speed      new speed      delta
      EncodeGray-4                 142MB/s ± 1%   166MB/s ± 1%  +16.50%  (p=0.000 n=86+91)
      EncodeGrayWithBufferPool-4   154MB/s ± 0%   182MB/s ± 0%  +17.78%  (p=0.000 n=97+94)
      EncodeNRGBOpaque-4           189MB/s ± 1%   219MB/s ± 1%  +15.82%  (p=0.000 n=90+93)
      EncodeNRGBA-4                168MB/s ± 1%   201MB/s ± 1%  +19.75%  (p=0.000 n=89+90)
      EncodePaletted-4            60.3MB/s ± 1%  62.0MB/s ± 1%   +2.84%  (p=0.000 n=90+87)
      EncodeRGBOpaque-4            189MB/s ± 1%   218MB/s ± 1%  +15.60%  (p=0.000 n=94+87)
      EncodeRGBA-4                50.6MB/s ± 2%  53.4MB/s ± 0%   +5.51%  (p=0.000 n=91+89)
      
      Change-Id: Ifed4486a7ba19a26abe5cbf2142f15cc7464e84f
      Reviewed-on: https://go-review.googlesource.com/c/go/+/187837
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJoe Tsai <thebrokentoaster@gmail.com>
      bc92fe8b
    • Stefan Baebler's avatar
      net/url: improve url parsing error messages by quoting · 64cfe9fe
      Stefan Baebler authored
      Current implementation doesn't always make it obvious what the exact
      problem with the URL is, so this makes it clearer by consistently quoting
      the invalid URL, as is the norm in other parsing implementations, eg.:
      strconv.Atoi(" 123") returns an error: parsing " 123": invalid syntax
      
      Updates #29261
      
      Change-Id: Icc6bff8b4a4584677c0f769992823e6e1e0d397d
      GitHub-Last-Rev: 648b9d93fe149ec90f3aeca73019158a344de03e
      GitHub-Pull-Request: golang/go#29384
      Reviewed-on: https://go-review.googlesource.com/c/go/+/185117Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      64cfe9fe
    • Martin Möhrmann's avatar
      runtime: reduce allocations when building pprof LabelSet · 5fb74fc1
      Martin Möhrmann authored
      Pre-allocate the slice of labels with enough capacity
      to avoid growslice calls.
      
      Change-Id: I89db59ac722c03b0202e042d1f707bb041e0999f
      Reviewed-on: https://go-review.googlesource.com/c/go/+/181517
      Run-TryBot: Martin Möhrmann <moehrmann@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarEmmanuel Odeke <emm.odeke@gmail.com>
      Reviewed-by: default avatarMichael Matloob <matloob@golang.org>
      5fb74fc1
    • Eddie Scholtz's avatar
      encoding/xml: rename fInnerXml to fInnerXML · 37373592
      Eddie Scholtz authored
      Per the code review guidelines: "Words in names that are
      initialisms or acronyms have a consistent case."
      
      Change-Id: I347b02d2f48455f2cbbc040191ba197e3e8f23fc
      Reviewed-on: https://go-review.googlesource.com/c/go/+/191970Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      37373592
    • Martin Möhrmann's avatar
      net/url: use strings.IndexByte instead of strings.Index in split function · 5ff12f62
      Martin Möhrmann authored
      Production profiling shows ~15% of url.Parse time being spend in the overhead
      of calling strings.IndexByte through strings.Index instead of calling
      strings.IndexByte directly.
      
      name   old time/op  new time/op  delta
      Split  15.5ns ± 2%  10.7ns ± 3%  -30.98%  (p=0.000 n=20+19)
      
      Change-Id: Ie25dd4afa93539a1335a91ab2a4a367f97bd3df0
      Reviewed-on: https://go-review.googlesource.com/c/go/+/178877
      Run-TryBot: Martin Möhrmann <moehrmann@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDaniel Martí <mvdan@mvdan.cc>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      5ff12f62
    • Cuong Manh Le's avatar
      cmd/compile: remove gc.eqtype in comments · 6a73e94c
      Cuong Manh Le authored
      golang.org/cl/143180 changed gc.eqtype to types.Identical, but gc.eqtype
      is still mentioned in some comments. Remove them and update comments to
      mention new functions instead.
      
      Change-Id: I6c5eece5221f524556ee55db80de0e4bdfaf166e
      Reviewed-on: https://go-review.googlesource.com/c/go/+/191357Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      6a73e94c
    • Nao YONASHIRO's avatar
      image/png: hoist repetitive pixels per byte out of loop in Encode · f04f594a
      Nao YONASHIRO authored
      The existing implementation has calculated pixels per byte for each pixel.
      reduce the calculation of pixels per byte.
      
      name                        old time/op    new time/op     delta
      EncodeGray-4                  2.16ms ± 1%     2.16ms ± 1%    -0.28%  (p=0.000 n=86+84)
      EncodeGrayWithBufferPool-4    1.99ms ± 0%     1.97ms ± 0%    -0.72%  (p=0.000 n=97+92)
      EncodeNRGBOpaque-4            6.51ms ± 1%     6.48ms ± 1%    -0.45%  (p=0.000 n=90+85)
      EncodeNRGBA-4                 7.33ms ± 1%     7.28ms ± 0%    -0.69%  (p=0.000 n=89+87)
      EncodePaletted-4              5.10ms ± 1%     2.29ms ± 0%   -55.11%  (p=0.000 n=90+85)
      EncodeRGBOpaque-4             6.51ms ± 1%     6.51ms ± 0%      ~     (p=0.311 n=94+88)
      EncodeRGBA-4                  24.3ms ± 2%     24.1ms ± 1%    -0.87%  (p=0.000 n=91+91)
      
      name                        old speed      new speed       delta
      EncodeGray-4                 142MB/s ± 1%    143MB/s ± 1%    +0.26%  (p=0.000 n=86+85)
      EncodeGrayWithBufferPool-4   154MB/s ± 0%    156MB/s ± 0%    +0.73%  (p=0.000 n=97+92)
      EncodeNRGBOpaque-4           189MB/s ± 1%    190MB/s ± 1%    +0.44%  (p=0.000 n=90+86)
      EncodeNRGBA-4                168MB/s ± 1%    169MB/s ± 0%    +0.69%  (p=0.000 n=89+87)
      EncodePaletted-4            60.3MB/s ± 1%  134.2MB/s ± 0%  +122.74%  (p=0.000 n=90+85)
      EncodeRGBOpaque-4            189MB/s ± 1%    189MB/s ± 0%      ~     (p=0.326 n=94+88)
      EncodeRGBA-4                50.6MB/s ± 2%   51.1MB/s ± 1%    +0.87%  (p=0.000 n=91+91)
      
      name                        old alloc/op   new alloc/op    delta
      EncodeGray-4                   852kB ± 0%      852kB ± 0%    +0.00%  (p=0.000 n=100+100)
      EncodeGrayWithBufferPool-4    1.49kB ± 2%     1.47kB ± 1%    -0.88%  (p=0.000 n=95+90)
      EncodeNRGBOpaque-4             860kB ± 0%      860kB ± 0%    +0.00%  (p=0.003 n=98+58)
      EncodeNRGBA-4                  864kB ± 0%      864kB ± 0%    +0.00%  (p=0.021 n=100+99)
      EncodePaletted-4               849kB ± 0%      849kB ± 0%    +0.00%  (p=0.040 n=100+100)
      EncodeRGBOpaque-4              860kB ± 0%      860kB ± 0%      ~     (p=0.062 n=66+98)
      EncodeRGBA-4                  3.32MB ± 0%     3.32MB ± 0%    -0.00%  (p=0.044 n=99+99)
      
      name                        old allocs/op  new allocs/op   delta
      EncodeGray-4                    32.0 ± 0%       32.0 ± 0%      ~     (all equal)
      EncodeGrayWithBufferPool-4      3.00 ± 0%       3.00 ± 0%      ~     (all equal)
      EncodeNRGBOpaque-4              32.0 ± 0%       32.0 ± 0%      ~     (all equal)
      EncodeNRGBA-4                   32.0 ± 0%       32.0 ± 0%      ~     (all equal)
      EncodePaletted-4                36.0 ± 0%       36.0 ± 0%      ~     (all equal)
      EncodeRGBOpaque-4               32.0 ± 0%       32.0 ± 0%      ~     (all equal)
      EncodeRGBA-4                    614k ± 0%       614k ± 0%      ~     (all equal)
      
      Change-Id: I716bde2dc80d8111d75d3d765fc09223f770d5a5
      Reviewed-on: https://go-review.googlesource.com/c/go/+/187417Reviewed-by: default avatarEmmanuel Odeke <emm.odeke@gmail.com>
      Reviewed-by: default avatarNigel Tao <nigeltao@golang.org>
      Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      f04f594a
    • Agniva De Sarker's avatar
      cmd/compile: apply optimization for readonly globals on wasm · 7be97af2
      Agniva De Sarker authored
      Extend the optimization introduced in CL 141118 to the wasm architecture.
      
      And for reference, the rules trigger 212 times while building std and cmd
      
      $GOOS=js GOARCH=wasm gotip build std cmd
      $grep -E "Wasm.rules:44(1|2|3|4)" rulelog | wc -l
      212
      
      Updates #26498
      
      Change-Id: I153684a2b98589ae812b42268da08b65679e09d1
      Reviewed-on: https://go-review.googlesource.com/c/go/+/185477
      Run-TryBot: Agniva De Sarker <agniva.quicksilver@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      Reviewed-by: default avatarRichard Musiol <neelance@gmail.com>
      7be97af2
    • Agniva De Sarker's avatar
      runtime,syscall/js: reuse wasm memory DataView · 07f04607
      Agniva De Sarker authored
      Currently, every call to mem() incurs a new DataView object. This was necessary
      because the wasm linear memory could grow at any time.
      
      Now, whenever the memory grows, we make a call to the front-end. This allows us to
      reuse the existing DataView object and create a new one only when the memory actually grows.
      
      This gives us a boost in performance during DOM operations, while incurring an extra
      trip to front-end when memory grows. However, since the GrowMemory calls are meant to decrease
      over the runtime of an application, this is a good tradeoff in the long run.
      
      The benchmarks have been tested inside a browser (Google Chrome 75.0.3770.90 (Official Build) (64-bit)).
      It is hard to get stable nos. for DOM operations since the jumps make the timing very unreliable.
      But overall, it shows a clear gain.
      
      name  old time/op  new time/op  delta
      DOM    135µs ±26%    84µs ±10%  -37.22%  (p=0.000 n=10+9)
      
      Go1 benchmarks do not show any noticeable degradation:
      name                   old time/op    new time/op    delta
      BinaryTree17              22.5s ± 0%     22.5s ± 0%     ~     (p=0.743 n=8+9)
      Fannkuch11                15.1s ± 0%     15.1s ± 0%   +0.17%  (p=0.000 n=9+9)
      FmtFprintfEmpty           324ns ± 1%     303ns ± 0%   -6.64%  (p=0.000 n=9+10)
      FmtFprintfString          535ns ± 1%     515ns ± 0%   -3.85%  (p=0.000 n=10+10)
      FmtFprintfInt             609ns ± 0%     589ns ± 0%   -3.28%  (p=0.000 n=10+10)
      FmtFprintfIntInt          938ns ± 0%     920ns ± 0%   -1.92%  (p=0.000 n=9+10)
      FmtFprintfPrefixedInt     950ns ± 0%     924ns ± 0%   -2.72%  (p=0.000 n=10+9)
      FmtFprintfFloat          1.41µs ± 1%    1.43µs ± 0%   +1.01%  (p=0.000 n=10+10)
      FmtManyArgs              3.66µs ± 1%    3.46µs ± 0%   -5.43%  (p=0.000 n=9+10)
      GobDecode                38.8ms ± 1%    37.8ms ± 0%   -2.50%  (p=0.000 n=10+8)
      GobEncode                26.3ms ± 1%    26.3ms ± 0%     ~     (p=0.853 n=10+10)
      Gzip                      1.16s ± 1%     1.16s ± 0%   -0.37%  (p=0.008 n=10+9)
      Gunzip                    210ms ± 0%     208ms ± 1%   -1.01%  (p=0.000 n=10+10)
      JSONEncode               48.0ms ± 0%    48.1ms ± 1%   +0.29%  (p=0.019 n=9+9)
      JSONDecode                348ms ± 1%     326ms ± 1%   -6.34%  (p=0.000 n=10+10)
      Mandelbrot200            6.62ms ± 0%    6.64ms ± 0%   +0.37%  (p=0.000 n=7+9)
      GoParse                  23.9ms ± 1%    24.7ms ± 1%   +2.98%  (p=0.000 n=9+9)
      RegexpMatchEasy0_32       555ns ± 0%     561ns ± 0%   +1.10%  (p=0.000 n=8+10)
      RegexpMatchEasy0_1K      3.94µs ± 1%    3.94µs ± 0%     ~     (p=0.906 n=9+8)
      RegexpMatchEasy1_32       516ns ± 0%     524ns ± 0%   +1.51%  (p=0.000 n=9+10)
      RegexpMatchEasy1_1K      4.39µs ± 1%    4.40µs ± 1%     ~     (p=0.171 n=10+10)
      RegexpMatchMedium_32     25.1ns ± 0%    25.5ns ± 0%   +1.51%  (p=0.000 n=9+8)
      RegexpMatchMedium_1K      196µs ± 0%     203µs ± 1%   +3.23%  (p=0.000 n=9+10)
      RegexpMatchHard_32       11.2µs ± 1%    11.6µs ± 1%   +3.62%  (p=0.000 n=10+10)
      RegexpMatchHard_1K        334µs ± 1%     348µs ± 1%   +4.21%  (p=0.000 n=9+10)
      Revcomp                   2.39s ± 0%     2.41s ± 0%   +0.78%  (p=0.000 n=8+9)
      Template                  385ms ± 1%     336ms ± 0%  -12.61%  (p=0.000 n=10+9)
      TimeParse                2.18µs ± 1%    2.18µs ± 1%     ~     (p=0.424 n=10+10)
      TimeFormat               2.28µs ± 1%    2.22µs ± 1%   -2.30%  (p=0.000 n=10+10)
      
      name                   old speed      new speed      delta
      GobDecode              19.8MB/s ± 1%  20.3MB/s ± 0%   +2.56%  (p=0.000 n=10+8)
      GobEncode              29.1MB/s ± 1%  29.2MB/s ± 0%     ~     (p=0.810 n=10+10)
      Gzip                   16.7MB/s ± 1%  16.8MB/s ± 0%   +0.37%  (p=0.007 n=10+9)
      Gunzip                 92.2MB/s ± 0%  93.2MB/s ± 1%   +1.03%  (p=0.000 n=10+10)
      JSONEncode             40.4MB/s ± 0%  40.3MB/s ± 1%   -0.28%  (p=0.025 n=9+9)
      JSONDecode             5.58MB/s ± 1%  5.96MB/s ± 1%   +6.80%  (p=0.000 n=10+10)
      GoParse                2.42MB/s ± 0%  2.35MB/s ± 1%   -2.83%  (p=0.000 n=8+9)
      RegexpMatchEasy0_32    57.7MB/s ± 0%  57.0MB/s ± 0%   -1.09%  (p=0.000 n=8+10)
      RegexpMatchEasy0_1K     260MB/s ± 1%   260MB/s ± 0%     ~     (p=0.963 n=9+8)
      RegexpMatchEasy1_32    62.1MB/s ± 0%  61.1MB/s ± 0%   -1.53%  (p=0.000 n=10+10)
      RegexpMatchEasy1_1K     233MB/s ± 1%   233MB/s ± 1%     ~     (p=0.190 n=10+10)
      RegexpMatchMedium_32   39.8MB/s ± 0%  39.1MB/s ± 1%   -1.74%  (p=0.000 n=9+10)
      RegexpMatchMedium_1K   5.21MB/s ± 0%  5.05MB/s ± 1%   -3.09%  (p=0.000 n=9+10)
      RegexpMatchHard_32     2.86MB/s ± 1%  2.76MB/s ± 1%   -3.43%  (p=0.000 n=10+10)
      RegexpMatchHard_1K     3.06MB/s ± 1%  2.94MB/s ± 1%   -4.06%  (p=0.000 n=9+10)
      Revcomp                 106MB/s ± 0%   105MB/s ± 0%   -0.77%  (p=0.000 n=8+9)
      Template               5.04MB/s ± 1%  5.77MB/s ± 0%  +14.48%  (p=0.000 n=10+9)
      
      Updates #32591
      
      Change-Id: Id567e14a788e359248b2129ef1cf0adc8cc4ab7f
      Reviewed-on: https://go-review.googlesource.com/c/go/+/183457
      Run-TryBot: Agniva De Sarker <agniva.quicksilver@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRichard Musiol <neelance@gmail.com>
      07f04607
    • Agniva De Sarker's avatar
      net/http/httputil: fix goroutine leak for DumpRequestOut · e7a4ab42
      Agniva De Sarker authored
      When an invalid URL was passed to DumpRequestOut, it would directly return
      without gracefully shutting down the reader goroutine.
      
      So we create a channel and signal the reader goroutine to exit
      if an error occurs during roundtrip.
      
      Fixes #32571
      
      Change-Id: I8c2970f1601e599f3d1ebfed298faf5f5716fc2c
      Reviewed-on: https://go-review.googlesource.com/c/go/+/182037
      Run-TryBot: Agniva De Sarker <agniva.quicksilver@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarEmmanuel Odeke <emm.odeke@gmail.com>
      e7a4ab42
    • Agniva De Sarker's avatar
      cmd/compile: optimize bounded shifts on wasm · 8fedb2d3
      Agniva De Sarker authored
      Use the shiftIsBounded function to generate more efficient
      Shift instructions.
      
      Updates #25167
      
      Change-Id: Id350f8462dc3a7ed3bfed0bcbea2860b8f40048a
      Reviewed-on: https://go-review.googlesource.com/c/go/+/182558
      Run-TryBot: Agniva De Sarker <agniva.quicksilver@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      Reviewed-by: default avatarRichard Musiol <neelance@gmail.com>
      8fedb2d3
    • Agniva De Sarker's avatar
      cmd/compile: coalesce a few shift rules for wasm · b9ef4c0f
      Agniva De Sarker authored
      Change-Id: I1b76daba90afd474390db8d9c238445abaac7ca6
      Reviewed-on: https://go-review.googlesource.com/c/go/+/182557
      Run-TryBot: Agniva De Sarker <agniva.quicksilver@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRichard Musiol <neelance@gmail.com>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      b9ef4c0f
    • Sam Arnold's avatar
      strconv: Speed improvement to number parsing · 3d48ae35
      Sam Arnold authored
      Run underscore validation only if we have seen underscores.
      
      Some performance results on my laptop:
      name                   old time/op  new time/op  delta
      Atof64Decimal-12       30.5ns ± 0%  23.8ns ± 0%  -22.02%  (p=0.016 n=5+4)
      Atof64Float-12         39.0ns ± 0%  28.7ns ± 0%  -26.39%  (p=0.002 n=6+6)
      Atof64FloatExp-12      64.4ns ± 1%  54.4ns ± 1%  -15.65%  (p=0.002 n=6+6)
      Atof64Big-12            115ns ± 1%    87ns ± 1%  -24.45%  (p=0.002 n=6+6)
      Atof64RandomBits-12     187ns ±14%   156ns ±19%  -16.46%  (p=0.032 n=6+6)
      Atof64RandomFloats-12   126ns ± 0%   105ns ± 1%  -16.65%  (p=0.000 n=6+5)
      Atof32Decimal-12       32.0ns ± 1%  24.0ns ± 1%  -24.97%  (p=0.002 n=6+6)
      Atof32Float-12         37.1ns ± 1%  27.0ns ± 1%  -27.42%  (p=0.002 n=6+6)
      Atof32FloatExp-12      68.4ns ± 1%  54.2ns ± 1%  -20.77%  (p=0.002 n=6+6)
      Atof32Random-12        92.0ns ± 1%  77.4ns ± 0%  -15.81%  (p=0.000 n=6+5)
      ParseInt/Pos/7bit-12   19.4ns ± 1%  13.8ns ±10%  -28.94%  (p=0.002 n=6+6)
      ParseInt/Pos/26bit-12  29.1ns ± 1%  19.8ns ± 2%  -31.92%  (p=0.002 n=6+6)
      ParseInt/Pos/31bit-12  33.1ns ± 0%  22.3ns ± 3%  -32.62%  (p=0.004 n=5+6)
      ParseInt/Pos/56bit-12  47.8ns ± 1%  30.7ns ± 1%  -35.78%  (p=0.004 n=6+5)
      ParseInt/Pos/63bit-12  51.9ns ± 1%  33.4ns ± 2%  -35.49%  (p=0.002 n=6+6)
      ParseInt/Neg/7bit-12   18.5ns ± 4%  13.4ns ± 3%  -27.88%  (p=0.002 n=6+6)
      ParseInt/Neg/26bit-12  28.4ns ± 3%  19.7ns ± 3%  -30.38%  (p=0.002 n=6+6)
      ParseInt/Neg/31bit-12  31.9ns ± 1%  21.8ns ± 2%  -31.56%  (p=0.002 n=6+6)
      ParseInt/Neg/56bit-12  46.2ns ± 0%  30.6ns ± 1%  -33.73%  (p=0.004 n=5+6)
      ParseInt/Neg/63bit-12  50.2ns ± 1%  33.2ns ± 1%  -33.96%  (p=0.002 n=6+6)
      
      Fixes #33330
      
      Change-Id: I119da66457c2fbaf6e88bb90cf56417a16df8f0e
      Reviewed-on: https://go-review.googlesource.com/c/go/+/187957
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      3d48ae35
    • Ben Shi's avatar
      cmd/compile: optimize 386's math.bits.TrailingZeros16 · 22355d6c
      Ben Shi authored
      This CL optimizes math.bits.TrailingZeros16 on 386 with
      a pair of BSFL and ORL instrcutions.
      
      The case TrailingZeros16-4 of the benchmark test in
      math/bits shows big improvement.
      name               old time/op  new time/op  delta
      TrailingZeros16-4  1.55ns ± 1%  0.87ns ± 1%  -43.87%  (p=0.000 n=50+49)
      
      Change-Id: Ia899975b0e46f45dcd20223b713ed632bc32740b
      Reviewed-on: https://go-review.googlesource.com/c/go/+/189277
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      22355d6c
    • Ben Shi's avatar
      test/fixedbugs: add more test cases to issue #27718 · e1e4c499
      Ben Shi authored
      This CL add test cases for the unary FP negative
      operation.
      
      Change-Id: I54e7292ca9df05da0c2b113adefc97ee1e94c6e2
      Reviewed-on: https://go-review.googlesource.com/c/go/+/190937
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      e1e4c499
    • Ben Shi's avatar
      cmd/compile: generate Select on WASM · 731e6fc3
      Ben Shi authored
      This CL performs the branchelim optimization on WASM with its
      select instruction. And the total size of pkg/js_wasm decreased
      about 80KB by this optimization.
      
      Change-Id: I868eb146120a1cac5c4609c8e9ddb07e4da8a1d9
      Reviewed-on: https://go-review.googlesource.com/c/go/+/190957
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRichard Musiol <neelance@gmail.com>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      731e6fc3
    • fanzha02's avatar
      cmd/internal/obj/arm64: add support for most system registers · 9c67516e
      fanzha02 authored
      This patch supports the EL0 and EL1 system registers used in MRS/MSR
      instructions. This patch refactors the assembler code, allowing the
      assembler to read system register information from the automatically
      generated sysRegEnc.go file and move existing declared system registers
      to the sysRegEnc.go file.
      
      This patch adds 431 system registers, it is worth noting that the number
      of special registers is initialized to less than 1024 in the list7.go file.
      
      This CL also adds some test cases to test the newly added system registers.
      
      The test cases are contributed by Dianhong Xu <Dianhong.Xu@arm.com>
      
      Change-Id: Ic09a937eaaeefe82bd08b5dd726808f8ff6cebf6
      Reviewed-on: https://go-review.googlesource.com/c/go/+/189577Reviewed-by: default avatarBen Shi <powerman1st@163.com>
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      9c67516e
    • Keith Randall's avatar
      cmd/compile: remove auxSymInt32 · b91b3d9c
      Keith Randall authored
      We never used it, might as well get rid of it.
      
      Change-Id: I5c23c93e90173bff9ac1fc1b8ae1e2025215d6eb
      Reviewed-on: https://go-review.googlesource.com/c/go/+/191938
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      b91b3d9c
  2. 27 Aug, 2019 2 commits