1. 10 Oct, 2019 3 commits
  2. 09 Oct, 2019 4 commits
  3. 08 Oct, 2019 2 commits
  4. 04 Oct, 2019 23 commits
  5. 03 Oct, 2019 8 commits
    • Cherry Zhang's avatar
      [dev.link] cmd/internal/goobj: support parsing new object file · d7938002
      Cherry Zhang authored
      Add support of parsing new object file format. We use the new
      parser if the magic string matches the new one, otherwise use the
      old one.
      
      The parsed data are still filled into the current goobj API. In
      the future we may consider to change the goobj API to a close
      match of the object file data.
      
      Now objdump and nm commands support new object file format.
      
      For a reference to a symbol defined in another package, with the
      new object file format we don't know its name. Write it as
      pkg.<#nn> for now, where nn is its symbol index.
      
      Change-Id: I06d05b2ca834ba36980da3c5d76aee16c3b0a483
      Reviewed-on: https://go-review.googlesource.com/c/go/+/196031
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarThan McIntosh <thanm@google.com>
      d7938002
    • 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