1. 09 Nov, 2018 7 commits
    • Alan Donovan's avatar
      cmd/vet: lostcancel: suppress the check in the main.main function · 5e17ce22
      Alan Donovan authored
      When main.main returns, the process exits, so there's no need to cancel contexts.
      
      This change was initially reviewed as
      https://go-review.googlesource.com/c/go/+/106915/4
      but somehow I messed up and committed patchset 5, which was
      effectively empty.
      
      Change-Id: Ic4250eb6563af9bc734e429aafc7081ca7d0e012
      Reviewed-on: https://go-review.googlesource.com/c/148758Reviewed-by: default avatarAlan Donovan <adonovan@google.com>
      5e17ce22
    • Josh Bleecher Snyder's avatar
      runtime: reduce linear search through pcvalue cache · 7d6b5e34
      Josh Bleecher Snyder authored
      This change introduces two optimizations together,
      one for recursive and one for non-recursive stacks.
      
      For recursive stacks, we introduce the new entry
      at the beginning of the cache, so it can be found first.
      This adds an extra read and write.
      While we're here, switch from fastrandn, which does a multiply,
      to fastrand % n, which does a shift.
      
      For non-recursive stacks, split the cache from [16]pcvalueCacheEnt
      into [2][8]pcvalueCacheEnt, and add a very cheap associative lookup.
      
      name                old time/op  new time/op  delta
      StackCopyPtr-8       118ms ± 1%   106ms ± 2%  -9.56%  (p=0.000 n=17+18)
      StackCopy-8         95.8ms ± 1%  87.0ms ± 3%  -9.11%  (p=0.000 n=19+20)
      StackCopyNoCache-8   135ms ± 2%   139ms ± 1%  +3.06%  (p=0.000 n=19+18)
      
      During make.bash, the association function used has this return distribution:
      
      percent count  return value
       53.23% 678797 1
       46.74% 596094 0
      
      It is definitely not perfect, but it is pretty good,
      and that's all we need.
      
      Change-Id: I2cabb1d26b99c5111bc28f427016a2a5e6c620fd
      Reviewed-on: https://go-review.googlesource.com/c/110564
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      7d6b5e34
    • Lynn Boger's avatar
      crypto/md5: fix md5block asm to work on big endian ppc64 · fcd1ec0c
      Lynn Boger authored
      This handles a TODO in the md5block_ppc64le.s file to
      make use of byte reverse loads so the function works for
      big endian as well as little endian. File name is now
      md5block_ppc64x.s.
      
      name                 old time/op    new time/op    delta
      Hash8Bytes              537ns ± 0%     299ns ± 0%  -44.32%  (p=0.000 n=8+1)
      Hash1K                 4.74µs ± 0%    3.24µs ± 0%  -31.64%  (p=0.250 n=7+1)
      Hash8K                 34.4µs ± 0%    23.6µs ± 0%  -31.56%  (p=0.222 n=8+1)
      Hash8BytesUnaligned     537ns ± 0%     298ns ± 0%  -44.51%  (p=0.000 n=8+1)
      Hash1KUnaligned        4.74µs ± 0%    3.24µs ± 0%  -31.48%  (p=0.222 n=8+1)
      Hash8KUnaligned        34.4µs ± 0%    23.6µs ± 0%  -31.39%  (p=0.222 n=8+1)
      
      name                 old speed      new speed      delta
      Hash8Bytes           14.9MB/s ± 0%  26.8MB/s ± 0%  +79.76%  (p=0.222 n=8+1)
      Hash1K                216MB/s ± 0%   316MB/s ± 0%  +46.29%  (p=0.250 n=7+1)
      Hash8K                238MB/s ± 0%   348MB/s ± 0%  +46.11%  (p=0.222 n=8+1)
      Hash8BytesUnaligned  14.9MB/s ± 0%  26.8MB/s ± 0%  +79.76%  (p=0.222 n=8+1)
      Hash1KUnaligned       216MB/s ± 0%   316MB/s ± 0%  +45.95%  (p=0.222 n=8+1)
      Hash8KUnaligned       238MB/s ± 0%   347MB/s ± 0%  +45.75%  (p=0.222 n=8+1)
      
      Change-Id: I2e226bf7e69e0acd49db1af42e4fd8b87b155606
      Reviewed-on: https://go-review.googlesource.com/c/144599
      Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCarlos Eduardo Seo <cseo@linux.vnet.ibm.com>
      Reviewed-by: default avatarMichael Munday <mike.munday@ibm.com>
      fcd1ec0c
    • Daniel Martí's avatar
      cmd/vet: fix printf false negative with nested pointers · 4d913b33
      Daniel Martí authored
      Pointers to compound objects (structs, slices, arrays, maps) are only
      followed by fmt if the pointer is at the top level of an argument. This
      is to minimise the chances of fmt running into loops.
      
      However, vet did not follow this rule. It likely doesn't help that fmt
      does not document that restriction well, which is being tracked in
       #28625.
      
      Updates #27672.
      
      Change-Id: Ie9bbd9b974eda5ab9a285986d207ef92fca4453e
      Reviewed-on: https://go-review.googlesource.com/c/147997
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAlan Donovan <adonovan@google.com>
      4d913b33
    • Daniel Martí's avatar
      cmd/vet: fix some pointer false positives in printf · edb2d1cb
      Daniel Martí authored
      fmt's godoc reads:
      
      	For compound objects, the elements are printed using these
      	rules, recursively, laid out like this:
      
      		struct:             {field0 field1 ...}
      		array, slice:       [elem0 elem1 ...]
      		maps:               map[key1:value1 key2:value2 ...]
      		pointer to above:   &{}, &[], &map[]
      
      That is, a pointer to a struct, array, slice, or map, can be correctly
      printed by fmt if the type pointed to can be printed without issues.
      
      vet was only following this rule for pointers to structs, omitting
      arrays, slices, and maps. Fix that, and add tests for all the
      combinations.
      
      Updates #27672.
      
      Change-Id: Ie61ebe1fffc594184f7b24d7dbf72d7d5de78309
      Reviewed-on: https://go-review.googlesource.com/c/147758
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAlan Donovan <adonovan@google.com>
      edb2d1cb
    • Brad Fitzpatrick's avatar
      mime/multipart: check for quoted-printable case insensitively · ef2c4865
      Brad Fitzpatrick authored
      Fixes #28674
      
      Change-Id: Id88e0a4b86b50eb45f0d968d7e4bbe66b7f37f82
      Reviewed-on: https://go-review.googlesource.com/c/148579
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      ef2c4865
    • Brad Fitzpatrick's avatar
      cmd/go/internal/cache: fix wrong/old function name in comment · 8ebc9fbc
      Brad Fitzpatrick authored
      Change-Id: Ia0caf2fb06097ac184f78779334460900e8c0149
      Reviewed-on: https://go-review.googlesource.com/c/148580Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      8ebc9fbc
  2. 08 Nov, 2018 17 commits
  3. 07 Nov, 2018 6 commits
    • diplozoon's avatar
      cmd/go: add /v2 to go.mod require example · 0b071e40
      diplozoon authored
      I added /v2 to go.mod require example
      
      Fixes #28374
      
      Change-Id: I74cca374838d106eb79acb9189a02fe9443962c0
      Reviewed-on: https://go-review.googlesource.com/c/144917Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      0b071e40
    • Keith Randall's avatar
      syscall: implement syscalls on Darwin using libSystem · a3b01440
      Keith Randall authored
      There are still some references to the bare Syscall functions
      in the stdlib. I will root those out in a following CL.
      (This CL is big enough as it is.)
      Most are in vendor directories:
      
      cmd/vendor/golang.org/x/sys/unix/
      vendor/golang_org/x/net/route/syscall.go
      syscall/bpf_bsd.go
      syscall/exec_unix.go
      syscall/flock.go
      
      Update #17490
      
      Change-Id: I69ab707811530c26b652b291cadee92f5bf5c1a4
      Reviewed-on: https://go-review.googlesource.com/c/141639
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarElias Naur <elias.naur@gmail.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      a3b01440
    • Robert Griesemer's avatar
      go/types: avoid certain problems with recursive alias type declarations · 0fcd4050
      Robert Griesemer authored
      It is possible to create certain recursive type declarations involving
      alias types which cause the type-checker to produce an (invalid) type
      for the alias because it is not yet available. By type-checking alias
      declarations in a 2nd phase, the problem is mitigated a bit since it
      requires more convoluted alias declarations for the problem to appear.
      
      Also re-enable testing of fixedbugs/issue27232.go again (which was the
      original cause for this change).
      
      Updates #28576.
      
      Change-Id: If6f9656a95262e6575b01c4a003094d41551564b
      Reviewed-on: https://go-review.googlesource.com/c/147597Reviewed-by: default avatarAlan Donovan <adonovan@google.com>
      0fcd4050
    • fanzha02's avatar
      cmd/internal/obj/arm64: encode large constants into MOVZ/MOVN and MOVK instructions · 644ddaa8
      fanzha02 authored
      Current assembler gets large constants from constant pool, this CL
      gets rid of the pool by using MOVZ/MOVN and MOVK to load large
      constants.
      
      This CL changes the assembler behavior as follows.
      
      1. go assembly  1, MOVD $0x1111222233334444, R1
                      2, MOVD $0x1111ffff1111ffff, R1
         previous version: MOVD 0x9a4, R1 (loads constant from pool).
         optimized version: 1, MOVD $0x4444, R1; MOVK $(0x3333<<16), R1; MOVK $(0x2222<<32), R1;
         MOVK $(0x1111<<48), R1. 2, MOVN $(0xeeee<<16), R1; MOVK $(0x1111<<48), R1.
      
      Add test cases, and below are binary size comparison and bechmark results.
      
      1. Binary size before/after
      binary                 size change
      pkg/linux_arm64        +25.4KB
      pkg/tool/linux_arm64   -2.9KB
      go                     -2KB
      gofmt                  no change
      
      2. compiler benchmark.
      name       old time/op       new time/op       delta
      Template         574ms ±21%        577ms ±14%     ~     (p=0.853 n=10+10)
      Unicode          327ms ±29%        353ms ±23%     ~     (p=0.360 n=10+8)
      GoTypes          1.97s ± 8%        2.04s ±11%     ~     (p=0.143 n=10+10)
      Compiler         9.13s ± 9%        9.25s ± 8%     ~     (p=0.684 n=10+10)
      SSA              29.2s ± 5%        27.0s ± 4%   -7.40%  (p=0.000 n=10+10)
      Flate            402ms ±40%        308ms ± 6%  -23.29%  (p=0.004 n=10+10)
      GoParser         470ms ±26%        382ms ±10%  -18.82%  (p=0.000 n=9+10)
      Reflect          1.36s ±16%        1.17s ± 7%  -13.92%  (p=0.001 n=9+10)
      Tar              561ms ±19%        466ms ±15%  -17.08%  (p=0.000 n=9+10)
      XML              745ms ±20%        679ms ±20%     ~     (p=0.123 n=10+10)
      StdCmd           35.5s ± 6%        37.2s ± 3%   +4.81%  (p=0.001 n=9+8)
      
      name       old user-time/op  new user-time/op  delta
      Template         625ms ±14%        660ms ±18%     ~     (p=0.343 n=10+10)
      Unicode          355ms ±10%        373ms ±20%     ~     (p=0.346 n=9+10)
      GoTypes          2.39s ± 8%        2.37s ± 5%     ~     (p=0.897 n=10+10)
      Compiler         11.1s ± 4%        11.4s ± 2%   +2.63%  (p=0.010 n=10+9)
      SSA              35.4s ± 3%        34.9s ± 2%     ~     (p=0.113 n=10+9)
      Flate            402ms ±13%        371ms ±30%     ~     (p=0.089 n=10+9)
      GoParser         513ms ± 8%        489ms ±24%   -4.76%  (p=0.039 n=9+9)
      Reflect          1.52s ±12%        1.41s ± 5%   -7.32%  (p=0.001 n=9+10)
      Tar              607ms ±10%        558ms ± 8%   -7.96%  (p=0.009 n=9+10)
      XML              828ms ±10%        789ms ±12%     ~     (p=0.059 n=10+10)
      
      name       old text-bytes    new text-bytes    delta
      HelloSize        714kB ± 0%        712kB ± 0%   -0.23%  (p=0.000 n=10+10)
      CmdGoSize       8.26MB ± 0%       8.25MB ± 0%   -0.14%  (p=0.000 n=10+10)
      
      name       old data-bytes    new data-bytes    delta
      HelloSize       10.5kB ± 0%       10.5kB ± 0%     ~     (all equal)
      CmdGoSize        258kB ± 0%        258kB ± 0%     ~     (all equal)
      
      name       old bss-bytes     new bss-bytes     delta
      HelloSize        125kB ± 0%        125kB ± 0%     ~     (all equal)
      CmdGoSize        146kB ± 0%        146kB ± 0%     ~     (all equal)
      
      name       old exe-bytes     new exe-bytes     delta
      HelloSize       1.18MB ± 0%       1.18MB ± 0%     ~     (all equal)
      CmdGoSize       11.2MB ± 0%       11.2MB ± 0%   -0.13%  (p=0.000 n=10+10)
      
      3. go1 benckmark.
      name                   old time/op    new time/op    delta
      BinaryTree17              6.60s ±18%     7.36s ±22%    ~     (p=0.222 n=5+5)
      Fannkuch11                4.04s ± 0%     4.05s ± 0%    ~     (p=0.421 n=5+5)
      FmtFprintfEmpty          91.8ns ±14%    91.2ns ± 9%    ~     (p=0.667 n=5+5)
      FmtFprintfString          145ns ± 0%     151ns ± 6%    ~     (p=0.397 n=4+5)
      FmtFprintfInt             169ns ± 0%     176ns ± 5%  +4.14%  (p=0.016 n=4+5)
      FmtFprintfIntInt          229ns ± 2%     243ns ± 6%    ~     (p=0.143 n=5+5)
      FmtFprintfPrefixedInt     343ns ± 0%     350ns ± 3%  +1.92%  (p=0.048 n=5+5)
      FmtFprintfFloat           400ns ± 3%     394ns ± 3%    ~     (p=0.063 n=5+5)
      FmtManyArgs              1.04µs ± 0%    1.05µs ± 0%  +1.62%  (p=0.029 n=4+4)
      GobDecode                13.9ms ± 4%    13.9ms ± 5%    ~     (p=1.000 n=5+5)
      GobEncode                10.6ms ± 4%    10.6ms ± 5%    ~     (p=0.421 n=5+5)
      Gzip                      567ms ± 1%     563ms ± 4%    ~     (p=0.548 n=5+5)
      Gunzip                   60.2ms ± 1%    60.4ms ± 0%    ~     (p=0.056 n=5+5)
      HTTPClientServer          114µs ± 4%     108µs ± 7%    ~     (p=0.095 n=5+5)
      JSONEncode               18.4ms ± 2%    17.8ms ± 2%  -3.06%  (p=0.016 n=5+5)
      JSONDecode                105ms ± 1%     103ms ± 2%    ~     (p=0.056 n=5+5)
      Mandelbrot200            5.48ms ± 0%    5.49ms ± 0%    ~     (p=0.841 n=5+5)
      GoParse                  6.05ms ± 1%    6.05ms ± 2%    ~     (p=1.000 n=5+5)
      RegexpMatchEasy0_32       143ns ± 1%     146ns ± 4%  +2.10%  (p=0.048 n=4+5)
      RegexpMatchEasy0_1K       499ns ± 1%     492ns ± 2%    ~     (p=0.079 n=5+5)
      RegexpMatchEasy1_32       137ns ± 0%     136ns ± 1%  -0.73%  (p=0.016 n=4+5)
      RegexpMatchEasy1_1K       826ns ± 4%     823ns ± 2%    ~     (p=0.841 n=5+5)
      RegexpMatchMedium_32      224ns ± 5%     233ns ± 8%    ~     (p=0.119 n=5+5)
      RegexpMatchMedium_1K     59.6µs ± 0%    59.3µs ± 1%  -0.66%  (p=0.016 n=4+5)
      RegexpMatchHard_32       3.29µs ± 3%    3.26µs ± 1%    ~     (p=0.889 n=5+5)
      RegexpMatchHard_1K       98.8µs ± 2%    99.0µs ± 0%    ~     (p=0.690 n=5+5)
      Revcomp                   1.02s ± 1%     1.01s ± 1%    ~     (p=0.095 n=5+5)
      Template                  135ms ± 5%     131ms ± 1%    ~     (p=0.151 n=5+5)
      TimeParse                 591ns ± 0%     593ns ± 0%  +0.20%  (p=0.048 n=5+5)
      TimeFormat                655ns ± 2%     607ns ± 0%  -7.42%  (p=0.016 n=5+4)
      [Geo mean]               93.5µs         93.8µs       +0.23%
      
      name                   old speed      new speed      delta
      GobDecode              55.1MB/s ± 4%  55.1MB/s ± 4%    ~     (p=1.000 n=5+5)
      GobEncode              72.4MB/s ± 4%  72.3MB/s ± 5%    ~     (p=0.421 n=5+5)
      Gzip                   34.2MB/s ± 1%  34.5MB/s ± 4%    ~     (p=0.548 n=5+5)
      Gunzip                  322MB/s ± 1%   321MB/s ± 0%    ~     (p=0.056 n=5+5)
      JSONEncode              106MB/s ± 2%   109MB/s ± 2%  +3.16%  (p=0.016 n=5+5)
      JSONDecode             18.5MB/s ± 1%  18.8MB/s ± 2%    ~     (p=0.056 n=5+5)
      GoParse                9.57MB/s ± 1%  9.57MB/s ± 2%    ~     (p=0.952 n=5+5)
      RegexpMatchEasy0_32     223MB/s ± 1%   221MB/s ± 0%  -1.10%  (p=0.029 n=4+4)
      RegexpMatchEasy0_1K    2.05GB/s ± 1%  2.08GB/s ± 2%    ~     (p=0.095 n=5+5)
      RegexpMatchEasy1_32     232MB/s ± 0%   234MB/s ± 1%  +0.76%  (p=0.016 n=4+5)
      RegexpMatchEasy1_1K    1.24GB/s ± 4%  1.24GB/s ± 2%    ~     (p=0.841 n=5+5)
      RegexpMatchMedium_32   4.45MB/s ± 5%  4.20MB/s ± 1%  -5.63%  (p=0.000 n=5+4)
      RegexpMatchMedium_1K   17.2MB/s ± 0%  17.3MB/s ± 1%  +0.66%  (p=0.016 n=4+5)
      RegexpMatchHard_32     9.73MB/s ± 3%  9.83MB/s ± 1%    ~     (p=0.889 n=5+5)
      RegexpMatchHard_1K     10.4MB/s ± 2%  10.3MB/s ± 0%    ~     (p=0.635 n=5+5)
      Revcomp                 249MB/s ± 1%   252MB/s ± 1%    ~     (p=0.095 n=5+5)
      Template               14.4MB/s ± 4%  14.8MB/s ± 1%    ~     (p=0.151 n=5+5)
      [Geo mean]             62.1MB/s       62.3MB/s       +0.34%
      
      Fixes #10108
      
      Change-Id: I79038f3c4c2ff874c136053d1a2b1c8a5a9cfac5
      Reviewed-on: https://go-review.googlesource.com/c/118796Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      644ddaa8
    • Elias Naur's avatar
      internal/traceparser: skip test on iOS · ac277d92
      Elias Naur authored
      Change-Id: Ifc9581ba82a13f507c288282b517ebf8a5f93b4e
      Reviewed-on: https://go-review.googlesource.com/c/148058
      Run-TryBot: Elias Naur <elias.naur@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarHyang-Ah Hana Kim <hyangah@gmail.com>
      ac277d92
    • Hana (Hyang-Ah) Kim's avatar
      cmd/vendor: update github.com/google/pprof · c0a40e4f
      Hana (Hyang-Ah) Kim authored
      Sync @ fde099a (Oct 26, 2018)
      
      Also update misc/nacl/testzip.proto to include new testdata.
      Change-Id: If41590be9f395a591056e89a417b589c4ba71b1a
      Reviewed-on: https://go-review.googlesource.com/c/147979
      Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      c0a40e4f
  4. 06 Nov, 2018 10 commits
    • Diogo Pinela's avatar
      go/internal/gcimporter: ensure tests pass even if GOROOT is read-only · 1100df58
      Diogo Pinela authored
      This mainly entails writing compiler output files to a temporary
      directory, as well as the corrupted files in TestVersionHandling.
      
      Updates #28387
      
      Change-Id: I6b3619a91fff27011c7d73daa4febd14a6c5c348
      Reviewed-on: https://go-review.googlesource.com/c/146119
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      1100df58
    • David Chase's avatar
      cmd/compile: update TestNexting golden file for Delve · 6fc47916
      David Chase authored
      This change updates the expected output of the delve debugging session
      in the TestNexting internal/ssa test, aligning it with the changes
      introduced in CL 147360 and earlier.
      
      Change-Id: I1cc788d02433624a36f4690f24201569d765e5d3
      Reviewed-on: https://go-review.googlesource.com/c/147998
      Run-TryBot: David Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      6fc47916
    • Alberto Donizetti's avatar
      cmd/compile: update TestNexting golden file · 7cd2a51c
      Alberto Donizetti authored
      This change updates the expected output of the gdb debugging session
      in the TestNexting internal/ssa test, aligning it with the changes
      introduced in CL 147360.
      
      Fixes the longtest builder.
      
      Change-Id: I5b5c22e1cf5e205967ff8359dc6c1485c815428e
      Reviewed-on: https://go-review.googlesource.com/c/147957
      Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      7cd2a51c
    • Daniel Martí's avatar
      cmd/go: make 'go test -h' print two lines · ca33f33b
      Daniel Martí authored
      Like every other command's -h flag. To achieve this, pass the command's
      usage function to the cmdflag package, since that package is used by
      multiple commands and cannot directly access *base.Command.
      
      This also lets us get rid of testFlag1 and testFlag2, and instead have
      contiguous raw strings for the test and testflag help docs.
      
      Fixes #26999.
      
      Change-Id: I2ebd66835ee61fa83270816a01fa312425224bb3
      Reviewed-on: https://go-review.googlesource.com/c/144558
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAlan Donovan <adonovan@google.com>
      ca33f33b
    • Alberto Donizetti's avatar
      cmd/compile: add new format to known_formats · 9c772522
      Alberto Donizetti authored
      This change fixes a TestFormat failure in fmt_test by adding a
      recently introduced new known format (%q for syntax.Error).
      
      Fixes #28621
      
      Change-Id: I026ec88c334549a957a692c1652a860c57e23dae
      Reviewed-on: https://go-review.googlesource.com/c/147837Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      9c772522
    • Cherry Zhang's avatar
      cmd/asm: rename R18 to R18_PLATFORM on ARM64 · 35c05542
      Cherry Zhang authored
      In ARM64 ABI, R18 is the "platform register", the use of which is
      OS specific. The OS could choose to reserve this register. In
      practice, it seems fine to use R18 on Linux but not on darwin (iOS).
      
      Rename R18 to R18_PLATFORM to prevent accidental use. There is no
      R18 usage within the standard library (besides tests, which are
      updated).
      
      Fixes #26110
      
      Change-Id: Icef7b9549e2049db1df307a0180a3c90a12d7a84
      Reviewed-on: https://go-review.googlesource.com/c/147218
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      35c05542
    • Keith Randall's avatar
      cmd/compile: don't deadcode eliminate labels · 95a4f793
      Keith Randall authored
      Dead-code eliminating labels is tricky because there might
      be gotos that can still reach them.
      
      Bug probably introduced with CL 91056
      
      Fixes #28616
      
      Change-Id: I6680465134e3486dcb658896f5172606cc51b104
      Reviewed-on: https://go-review.googlesource.com/c/147817
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarIskander Sharipov <iskander.sharipov@intel.com>
      95a4f793
    • Alan Donovan's avatar
      cmd/vendor: add x/tools/go/analysis/cmd/vet-lite + deps · 8b469209
      Alan Donovan authored
      This change adds the vet-lite command (the future cmd/vet) and all its
      dependencies from x/tools, but not its tests and their dependencies.
      It was created with these commands:
      
        $ (cd $GOPATH/src/golang.org/x/tools && git checkout c76e1ad)
        $ cd GOROOT/src/cmd
        $ govendor add $(go list -deps golang.org/x/tools/go/analysis/cmd/vet-lite | grep golang.org/x/tools)
        $ rm -fr $(find vendor/golang.org/x/tools/ -name testdata)
        $ rm $(find vendor/golang.org/x/tools/ -name \*_test.go)
      
      I feel sure I am holding govendor wrong. Please advise.
      
      A followup CL will make cmd/vet behave like vet-lite, initially just
      for users that opt in, and soon after for all users, at which point
      cmd/vet will be replaced in its entirety by a copy of vet-lite's small
      main.go.
      
      In the meantime, anyone can try the new tool using these commands:
      
       $ go build cmd/vendor/golang.org/x/tools/go/analysis/cmd/vet-lite
       $ export GOVETTOOL=$(which vet-lite)
       $ go vet your/project/...
      
      Change-Id: Iea168111a32ce62f82f9fb706385ca0f368bc869
      Reviewed-on: https://go-review.googlesource.com/c/147444Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      8b469209
    • Lynn Boger's avatar
      runtime: improve performance of memclr, memmove on ppc64x · aa9bcea3
      Lynn Boger authored
      This improves the asm implementations for memmove and memclr on
      ppc64x through use of vsx loads and stores when size is >= 32 bytes.
      For memclr, dcbz is used when the size is >= 512 and aligned to 128.
      
      Memclr/64       13.3ns ± 0%     10.7ns ± 0%   -19.55%  (p=0.000 n=8+7)
      Memclr/96       14.9ns ± 0%     11.4ns ± 0%   -23.49%  (p=0.000 n=8+8)
      Memclr/128      16.3ns ± 0%     12.3ns ± 0%   -24.54%  (p=0.000 n=8+8)
      Memclr/160      17.3ns ± 0%     13.0ns ± 0%   -24.86%  (p=0.000 n=8+8)
      Memclr/256      20.0ns ± 0%     15.3ns ± 0%   -23.62%  (p=0.000 n=8+8)
      Memclr/512      34.2ns ± 0%     10.2ns ± 0%   -70.20%  (p=0.000 n=8+8)
      Memclr/4096      178ns ± 0%       23ns ± 0%   -87.13%  (p=0.000 n=8+8)
      Memclr/65536    2.67µs ± 0%     0.30µs ± 0%   -88.89%  (p=0.000 n=7+8)
      Memclr/1M       43.2µs ± 0%     10.0µs ± 0%   -76.85%  (p=0.000 n=8+8)
      Memclr/4M        173µs ± 0%       40µs ± 0%   -76.88%  (p=0.000 n=8+8)
      Memclr/8M        349µs ± 0%       82µs ± 0%   -76.58%  (p=0.000 n=8+8)
      Memclr/16M       701µs ± 7%      672µs ± 0%    -4.05%  (p=0.040 n=8+7)
      Memclr/64M      2.70ms ± 0%     2.67ms ± 0%    -0.96%  (p=0.000 n=8+7)
      
      Memmove/32      6.59ns ± 0%    5.84ns ± 0%  -11.34%  (p=0.029 n=4+4)
      Memmove/64      7.91ns ± 0%    6.97ns ± 0%  -11.92%  (p=0.029 n=4+4)
      Memmove/128     10.5ns ± 0%     8.8ns ± 0%  -16.24%  (p=0.029 n=4+4)
      Memmove/256     21.0ns ± 0%    12.9ns ± 0%  -38.57%  (p=0.029 n=4+4)
      Memmove/512     28.4ns ± 0%    26.2ns ± 0%   -7.75%  (p=0.029 n=4+4)
      Memmove/1024    48.2ns ± 1%    39.4ns ± 0%  -18.26%  (p=0.029 n=4+4)
      Memmove/2048    85.4ns ± 0%    69.0ns ± 0%  -19.20%  (p=0.029 n=4+4)
      Memmove/4096     159ns ± 0%     128ns ± 0%  -19.50%  (p=0.029 n=4+4)
      
      Change-Id: I8c1adf88790845bf31444a15249456006eb5bf8b
      Reviewed-on: https://go-review.googlesource.com/c/141217
      Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMichael Munday <mike.munday@ibm.com>
      aa9bcea3
    • Clément Chigot's avatar
      cmd/compile/internal/gc: update cgo_import_dynamic for AIX · e1978a2d
      Clément Chigot authored
      On AIX, cmd/link needs two information in order to generate a dynamic
      import, the library and its object needed. Currently, cmd/link isn't
      able to retrieve this object only with the name of the library.
      Therefore, the library pattern in cgo_import_dynamic must be
      "lib.a/obj.o".
      
      Change-Id: Ib8b8aaa9807c9fa6af46ece4e312d58073ed6ec1
      Reviewed-on: https://go-review.googlesource.com/c/146957
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      e1978a2d