1. 30 Apr, 2019 3 commits
  2. 29 Apr, 2019 20 commits
  3. 28 Apr, 2019 4 commits
  4. 27 Apr, 2019 9 commits
    • Elias Naur's avatar
      cmd/link/internal/ld,syscall: replace getfsstat64 with getfsstat · 4fdeb73f
      Elias Naur authored
      getfsstat64 is deprecated but not yet caught by the App Store checks.
      Use the supported getfsstat$INODE64 form instead to ensure forward
      compatibility.
      
      Change-Id: I0d97e8a8b254debb3de1cfcb3778dbed3702c249
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174200
      Run-TryBot: Elias Naur <mail@eliasnaur.com>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      4fdeb73f
    • Elias Naur's avatar
      cmd/link/internal/ld,syscall: drop $INODE64 suffixes on simulators · 096ab3c2
      Elias Naur authored
      Some libc functions are suffixed with "$INODE64" on macOS.
      Unfortunately, the iOS simulator doesn't have the suffixes, so we can't
      use GOARCH to distinguish the two platform.
      
      Add linker support for adding the suffix, using the macho platform
      to determine whether it is needed.
      
      While here, add the correct suffix for fdopendir on 386. It's
      "$INODE64$UNIX2003", believe it or not. Without the suffix,
      
      GOARCH=386 go test -short syscall
      
      crashes on my Mojave machine.
      
      Fixes #31447
      
      Change-Id: I9bd3de40ece7df62f744bc24cd00909e56b00b78
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174199
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      096ab3c2
    • Elias Naur's avatar
      cmd/link/internal/ld: consolidate macho platform setup · a74e0120
      Elias Naur authored
      Determine the macho platform once and use that the two places that
      need it. This makes it easier to add a third platform check for a
      follow-up change.
      
      Updates #31447
      
      Change-Id: I522a5fface647ab8e608f816c5832d531534df7a
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174198
      Run-TryBot: Elias Naur <mail@eliasnaur.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      a74e0120
    • Brian Kessler's avatar
      cmd/compile: add unsigned divisibility rules · a28a9427
      Brian Kessler authored
      "Division by invariant integers using multiplication" paper
      by Granlund and Montgomery contains a method for directly computing
      divisibility (x%c == 0 for c constant) by means of the modular inverse.
      The method is further elaborated in "Hacker's Delight" by Warren Section 10-17
      
      This general rule can compute divisibilty by one multiplication and a compare
      for odd divisors and an additional rotate for even divisors.
      
      To apply the divisibility rule, we must take into account
      the rules to rewrite x%c = x-((x/c)*c) and (x/c) for c constant on the first
      optimization pass "opt".  This complicates the matching as we want to match
      only in the cases where the result of (x/c) is not also available.
      So, we must match on the expanded form of (x/c) in the expression x == c*(x/c)
      in the "late opt" pass after common subexpresion elimination.
      
      Note, that if there is an intermediate opt pass introduced in the future we
      could simplify these rules by delaying the magic division rewrite to "late opt"
      and matching directly on (x/c) in the intermediate opt pass.
      
      Additional rules to lower the generic RotateLeft* ops were also applied.
      
      On amd64, the divisibility check is 25-50% faster.
      
      name                     old time/op  new time/op  delta
      DivconstI64-4            2.08ns ± 0%  2.08ns ± 1%     ~     (p=0.881 n=5+5)
      DivisibleconstI64-4      2.67ns ± 0%  2.67ns ± 1%     ~     (p=1.000 n=5+5)
      DivisibleWDivconstI64-4  2.67ns ± 0%  2.67ns ± 0%     ~     (p=0.683 n=5+5)
      DivconstU64-4            2.08ns ± 1%  2.08ns ± 1%     ~     (p=1.000 n=5+5)
      DivisibleconstU64-4      2.77ns ± 1%  1.55ns ± 2%  -43.90%  (p=0.008 n=5+5)
      DivisibleWDivconstU64-4  2.99ns ± 1%  2.99ns ± 1%     ~     (p=1.000 n=5+5)
      DivconstI32-4            1.53ns ± 2%  1.53ns ± 0%     ~     (p=1.000 n=5+5)
      DivisibleconstI32-4      2.23ns ± 0%  2.25ns ± 3%     ~     (p=0.167 n=5+5)
      DivisibleWDivconstI32-4  2.27ns ± 1%  2.27ns ± 1%     ~     (p=0.429 n=5+5)
      DivconstU32-4            1.78ns ± 0%  1.78ns ± 1%     ~     (p=1.000 n=4+5)
      DivisibleconstU32-4      2.52ns ± 2%  1.26ns ± 0%  -49.96%  (p=0.000 n=5+4)
      DivisibleWDivconstU32-4  2.63ns ± 0%  2.85ns ±10%   +8.29%  (p=0.016 n=4+5)
      DivconstI16-4            1.54ns ± 0%  1.54ns ± 0%     ~     (p=0.333 n=4+5)
      DivisibleconstI16-4      2.10ns ± 0%  2.10ns ± 1%     ~     (p=0.571 n=4+5)
      DivisibleWDivconstI16-4  2.22ns ± 0%  2.23ns ± 1%     ~     (p=0.556 n=4+5)
      DivconstU16-4            1.09ns ± 0%  1.01ns ± 1%   -7.74%  (p=0.000 n=4+5)
      DivisibleconstU16-4      1.83ns ± 0%  1.26ns ± 0%  -31.52%  (p=0.008 n=5+5)
      DivisibleWDivconstU16-4  1.88ns ± 0%  1.89ns ± 1%     ~     (p=0.365 n=5+5)
      DivconstI8-4             1.54ns ± 1%  1.54ns ± 1%     ~     (p=1.000 n=5+5)
      DivisibleconstI8-4       2.10ns ± 0%  2.11ns ± 0%     ~     (p=0.238 n=5+4)
      DivisibleWDivconstI8-4   2.22ns ± 0%  2.23ns ± 2%     ~     (p=0.762 n=5+5)
      DivconstU8-4             0.92ns ± 1%  0.94ns ± 1%   +2.65%  (p=0.008 n=5+5)
      DivisibleconstU8-4       1.66ns ± 0%  1.26ns ± 1%  -24.28%  (p=0.008 n=5+5)
      DivisibleWDivconstU8-4   1.79ns ± 0%  1.80ns ± 1%     ~     (p=0.079 n=4+5)
      
      A follow-up change will address the signed division case.
      
      Updates #30282
      
      Change-Id: I7e995f167179aa5c76bb10fbcbeb49c520943403
      Reviewed-on: https://go-review.googlesource.com/c/go/+/168037
      Run-TryBot: Brian Kessler <brian.m.kessler@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      a28a9427
    • Joel Sing's avatar
      cmd/dist: add support for openbsd/arm64 · f67f5511
      Joel Sing authored
      Updates #31656
      
      Change-Id: If481df050cd879f7c7c22a79c17c33af00a8b389
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174125
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      f67f5511
    • Joel Sing's avatar
      runtime, syscall: address vet errors in openbsd/arm64 assembly · 4abf3598
      Joel Sing authored
      Updates #31656
      
      Change-Id: Ie28734298bf1a2d5243f1ac15569311c1887176e
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174126Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      4abf3598
    • Joel Sing's avatar
      runtime: correct exitThread on openbsd/arm64 · 17a7f217
      Joel Sing authored
      The notdead argument to sys___threxit() is a pointer, hence requires a 64-bit
      move rather than a 32-bit one.
      
      Updates #31656
      
      Change-Id: I52ad31ed5afaf43ccc3d934025288216e8052528
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174124Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      17a7f217
    • Dmitri Goutnik's avatar
      bootstrap.bash: preserve file times when copying · 930d6ecb
      Dmitri Goutnik authored
      Preserve file modification times when copying bootstrap tree,
      this makes generated bootstrap more friendly to rsyncing.
      
      Change-Id: I32cde58c25b48d3c00d4413860dbd49a265b0ff2
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174217Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      930d6ecb
    • Mark Rushakoff's avatar
      cmd/go: fix typo in "go help version" output · 2b325f8d
      Mark Rushakoff authored
      Change-Id: I38b22786aae3d7a08cf2863ef5d15e476fe30093
      GitHub-Last-Rev: 57d07dd1c711029b965afd32e1d8a3c22560276f
      GitHub-Pull-Request: golang/go#31711
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174086Reviewed-by: default avatarEmmanuel Odeke <emm.odeke@gmail.com>
      2b325f8d
  5. 26 Apr, 2019 4 commits
    • Daniel Theophanes's avatar
      database/sql: add NullInt32 · 2177bfb3
      Daniel Theophanes authored
      It is common for database integers to be represented as int32
      internally. Although NullInt64 is already defined,
      this should remove some type casts and make working with those eaiser.
      
      For #31231
      
      Change-Id: Ia0c37ecef035fee0734c1d1fb6f58aef6905cf5e
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174178
      Run-TryBot: Daniel Theophanes <kardianos@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      2177bfb3
    • Cherry Zhang's avatar
      cmd/link: reduce the size of Reloc struct · 8ef45cf6
      Cherry Zhang authored
      For linking large binaries, the slice of Relocs consumes a large
      amount of memory. We can reduce this memory consumption by
      shrinking the size of the Reloc struct. This CL moves the fields
      used only in external linking or only on PPC64 and S390X to a
      lazily initialized side struct.
      
      Linking k8s.io/kubernetes/cmd/kube-apiserver on Linux/AMD64,
      before:
      inuse_space 1240.25MB total
      438.11MB 35.32% 35.32%   438.11MB 35.32%  cmd/link/internal/objfile.(*objReader).readSlices
      
      after:
      inuse_space 1123.39MB total
      306.85MB 27.31% 55.03%   306.85MB 27.31%  cmd/link/internal/objfile.(*objReader).readSlices
      
      Under GOGC=5 (to simulate system under memory pressure), the max
      RSS reduces from ~2.05G to ~1.83G. Even with external linking the
      max RSS doesn't increase.
      
      Change-Id: I9bb8a8effaed24a8b3c4b1cfb93e6992b8740f91
      Reviewed-on: https://go-review.googlesource.com/c/go/+/173437
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      8ef45cf6
    • Daniel Theophanes's avatar
      database/sql: check if src is nil before converting to string · 1805f425
      Daniel Theophanes authored
      A nil src (NULL database value) will result in a "nil" string,
      which will never parse correctly in a ParseInt or similar
      numeric conversion. The resulting error is confusing. Check
      for a nil src prior to converting the value to string
      if the resulting string will be parsed after that.
      
      Closes #31274
      
      Change-Id: I90f12cceff00fbbfdd3e343b04fa7e2596390e6d
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174177Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      1805f425
    • Marcel van Lohuizen's avatar
      vendor: pull in text@v0.3.2 · 2ae5e7f9
      Marcel van Lohuizen authored
      This updates the packages from text and net to use
      the Unicode 11 tables.
      
      Updates golang/go#27945
      
      Change-Id: I096e80283f37b596f2aa8bd3e5ffec6b7045469a
      Reviewed-on: https://go-review.googlesource.com/c/go/+/174057
      Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      2ae5e7f9