1. 06 Oct, 2019 2 commits
  2. 05 Oct, 2019 7 commits
  3. 04 Oct, 2019 23 commits
  4. 03 Oct, 2019 8 commits
    • David Chase's avatar
      cmd/compile: run deadcode before nilcheck for better statement relocation · adc4d2cc
      David Chase authored
      Nilcheck would move statements from NilCheck values to others that
      turned out were already dead, which leads to lost statements.  Better
      to eliminate the dead code first.
      
      One "error" is removed from test/prove.go because the code is
      actually dead, and the additional deadcode pass removes it before
      prove can run.
      
      Change-Id: If75926ca1acbb59c7ab9c8ef14d60a02a0a94f8b
      Reviewed-on: https://go-review.googlesource.com/c/go/+/198479
      Run-TryBot: David Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
      adc4d2cc
    • David Chase's avatar
      cmd/compile: make nilcheck more careful about statement relocations · 08a87938
      David Chase authored
      The earlier code was picking nodes that were "poor choices" and
      thus sometimes losing statements altogether.
      
      Change-Id: Ibe5ed800ffbd3c926c0ab1bc10c77d72d3042e45
      Reviewed-on: https://go-review.googlesource.com/c/go/+/198478
      Run-TryBot: David Chase <drchase@google.com>
      Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
      08a87938
    • David Chase's avatar
      cmd/compile: classify more nodes as "poor choices" for statements · 53bd9151
      David Chase authored
      Aggregate-making nodes that are later decomposed
      are poor choices for statements, because the decomposition
      phase turns them into multiple sub-values, some of which may be
      dead.  Better to look elsewhere for a statement mark.
      
      Change-Id: Ibd9584138ab3d1384548686896a28580a2e43f54
      Reviewed-on: https://go-review.googlesource.com/c/go/+/198477
      Run-TryBot: David Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      53bd9151
    • David Chase's avatar
      cmd/compile: pick position of implicit break statements more carefully · 6139019e
      David Chase authored
      The previous version used the position of the switch statement,
      which makes for potentially jumpy stepping and introduces a large
      number of statements repeating the line (tricky for inserting
      breaks).  It also shared a single OBREAK node and this was not
      really a syntax "tree".
      
      This improves both the nostmt test (by 6 lines) and
      reduces the total badness score from dwarf-goodness (by about 200).
      
      Change-Id: I1f71b231a26f152bdb6ce9bc8f95828bb222f665
      Reviewed-on: https://go-review.googlesource.com/c/go/+/188218
      Run-TryBot: David Chase <drchase@google.com>
      Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
      6139019e
    • David Chase's avatar
      cmd/compile: refine statement marking in numberlines · f7f85bdc
      David Chase authored
      1) An empty block is treated as not-a-statement unless its line differs
      from at least one of its predecessors (it might make sense to
      rearrange branches in predecessors, but that is a different issue).
      
      2) When iterating forward to choose a "good" place for a statement,
      actually check that the chosen place is in fact good.
      
      3) Refactor same line and same file into methods on XPos and Pos.
      
      This reduces the failure rate of ssa/stmtlines_test by 7-ish lines.
      (And interacts favorably with later debugging CLs.)
      
      Change-Id: Idb7cca7068f6fc9fbfdbe25bc0da15bcfc7b9d4a
      Reviewed-on: https://go-review.googlesource.com/c/go/+/188217
      Run-TryBot: David Chase <drchase@google.com>
      Reviewed-by: default avatarJeremy Faller <jeremy@golang.org>
      f7f85bdc
    • Matthew Dempsky's avatar
      cmd/compile: change size diagnostic to use benchmark format · 3ad35082
      Matthew Dempsky authored
      Makes it easier to run
      
          go build -a -gcflags=-d=export std |& grep ^BenchmarkExportSize
      
      and get useful output for feeding into benchstat.
      
      Change-Id: I2b52e8f5ff33b7ccb6c25b18e464513344bd9ad9
      Reviewed-on: https://go-review.googlesource.com/c/go/+/198698Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      3ad35082
    • Meng Zhuo's avatar
      internal/bytealg: (re)adding mips64x compare implementation · a1b1ba7d
      Meng Zhuo authored
      The original CL of mips64x compare function has been reverted due to wrong
      implement for little endian.
      Original CL: https://go-review.googlesource.com/c/go/+/196837
      
      name                         old time/op    new time/op    delta
      BytesCompare/1                 28.9ns ± 4%    22.1ns ± 0%    -23.60%  (p=0.000 n=9+8)
      BytesCompare/2                 34.6ns ± 0%    23.1ns ± 0%    -33.25%  (p=0.000 n=8+10)
      BytesCompare/4                 54.6ns ± 0%    40.8ns ± 0%    -25.27%  (p=0.000 n=8+8)
      BytesCompare/8                 73.9ns ± 0%    49.1ns ± 0%    -33.56%  (p=0.000 n=8+8)
      BytesCompare/16                 113ns ± 0%      24ns ± 0%    -79.20%  (p=0.000 n=9+9)
      BytesCompare/32                 190ns ± 0%      26ns ± 0%    -86.53%  (p=0.000 n=10+10)
      BytesCompare/64                 345ns ± 0%      44ns ± 0%    -87.19%  (p=0.000 n=10+8)
      BytesCompare/128                654ns ± 0%      52ns ± 0%    -91.97%  (p=0.000 n=9+8)
      BytesCompare/256               1.27µs ± 0%    0.07µs ± 0%    -94.14%  (p=0.001 n=8+9)
      BytesCompare/512               2.51µs ± 0%    0.12µs ± 0%    -95.26%  (p=0.000 n=9+10)
      BytesCompare/1024              4.99µs ± 0%    0.21µs ± 0%    -95.85%  (p=0.000 n=8+10)
      BytesCompare/2048              9.94µs ± 0%    0.38µs ± 0%    -96.14%  (p=0.000 n=8+8)
      CompareBytesEqual               105ns ± 0%      64ns ± 0%    -39.43%  (p=0.000 n=10+9)
      CompareBytesToNil              34.8ns ± 1%    38.6ns ± 3%    +11.01%  (p=0.000 n=10+10)
      CompareBytesEmpty              33.6ns ± 3%    36.6ns ± 0%     +8.77%  (p=0.000 n=10+8)
      CompareBytesIdentical          29.7ns ± 0%    40.5ns ± 1%    +36.45%  (p=0.000 n=10+8)
      CompareBytesSameLength         69.1ns ± 0%    51.8ns ± 0%    -25.04%  (p=0.000 n=10+9)
      CompareBytesDifferentLength    69.8ns ± 0%    52.5ns ± 0%    -24.79%  (p=0.000 n=10+8)
      CompareBytesBigUnaligned       5.15ms ± 0%    2.19ms ± 0%    -57.59%  (p=0.000 n=9+9)
      CompareBytesBig                5.28ms ± 0%    0.28ms ± 0%    -94.64%  (p=0.000 n=8+8)
      CompareBytesBigIdentical       29.7ns ± 0%    36.9ns ± 2%    +24.11%  (p=0.000 n=8+10)
      
      name                         old speed      new speed      delta
      CompareBytesBigUnaligned      204MB/s ± 0%   480MB/s ± 0%   +135.77%  (p=0.000 n=9+9)
      CompareBytesBig               198MB/s ± 0%  3704MB/s ± 0%  +1765.97%  (p=0.000 n=8+8)
      CompareBytesBigIdentical     35.3TB/s ± 0%  28.4TB/s ± 2%    -19.44%  (p=0.000 n=8+10)
      
      Fixes #34549
      
      Change-Id: I2ef29f13cdd4229745ac2d018bb53c76f2ff1209
      Reviewed-on: https://go-review.googlesource.com/c/go/+/197557Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      a1b1ba7d
    • Meng Zhuo's avatar
      cmd/asm: add VLD[1-4]R vector instructions on arm64 · 2bf7a925
      Meng Zhuo authored
      This change adds VLD1R, VLD2R, VLD3R, VLD4R
      
      Change-Id: Ie19e9ae02fdfc94b9344acde8c9938849efb0bf0
      Reviewed-on: https://go-review.googlesource.com/c/go/+/181697
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      2bf7a925