1. 12 Oct, 2018 11 commits
    • Russ Cox's avatar
      regexp: split one-pass execution out of machine struct · 60b29711
      Russ Cox authored
      This allows the one-pass executions to have their
      own pool of (much smaller) allocated structures.
      A step toward eliminating the per-Regexp machine cache.
      
      Not much effect on benchmarks, since there are no
      optimizations here, and pools are a tiny bit slower than a
      locked data structure for single-threaded code.
      
      name                             old time/op    new time/op    delta
      Find-12                             254ns ± 0%     252ns ± 0%  -0.94%  (p=0.000 n=9+10)
      FindAllNoMatches-12                 135ns ± 0%     134ns ± 1%  -0.49%  (p=0.002 n=9+9)
      FindString-12                       247ns ± 0%     246ns ± 0%  -0.24%  (p=0.003 n=8+10)
      FindSubmatch-12                     334ns ± 0%     333ns ± 2%    ~     (p=0.283 n=10+10)
      FindStringSubmatch-12               321ns ± 0%     320ns ± 0%  -0.51%  (p=0.000 n=9+10)
      Literal-12                         92.2ns ± 0%    91.1ns ± 0%  -1.25%  (p=0.000 n=9+10)
      NotLiteral-12                      1.47µs ± 0%    1.45µs ± 0%  -0.99%  (p=0.000 n=9+10)
      MatchClass-12                      2.17µs ± 0%    2.19µs ± 0%  +0.84%  (p=0.000 n=7+9)
      MatchClass_InRange-12              2.13µs ± 0%    2.09µs ± 0%  -1.70%  (p=0.000 n=10+10)
      ReplaceAll-12                      1.39µs ± 0%    1.39µs ± 0%  +0.51%  (p=0.000 n=10+10)
      AnchoredLiteralShortNonMatch-12    83.2ns ± 0%    82.4ns ± 0%  -0.96%  (p=0.000 n=8+8)
      AnchoredLiteralLongNonMatch-12      105ns ± 0%     106ns ± 1%    ~     (p=0.087 n=10+10)
      AnchoredShortMatch-12               131ns ± 0%     130ns ± 0%  -0.76%  (p=0.000 n=10+9)
      AnchoredLongMatch-12                267ns ± 0%     272ns ± 0%  +2.01%  (p=0.000 n=10+8)
      OnePassShortA-12                    611ns ± 0%     615ns ± 0%  +0.61%  (p=0.000 n=9+10)
      NotOnePassShortA-12                 552ns ± 0%     549ns ± 0%  -0.46%  (p=0.000 n=8+9)
      OnePassShortB-12                    491ns ± 0%     494ns ± 0%  +0.61%  (p=0.000 n=8+8)
      NotOnePassShortB-12                 412ns ± 0%     412ns ± 1%    ~     (p=0.151 n=9+10)
      OnePassLongPrefix-12                112ns ± 0%     108ns ± 0%  -3.57%  (p=0.000 n=10+10)
      OnePassLongNotPrefix-12             410ns ± 0%     402ns ± 0%  -1.95%  (p=0.000 n=9+8)
      MatchParallelShared-12             38.8ns ± 1%    38.6ns ± 2%    ~     (p=0.536 n=10+9)
      MatchParallelCopied-12             39.2ns ± 3%    39.4ns ± 7%    ~     (p=0.986 n=10+10)
      QuoteMetaAll-12                    94.6ns ± 0%    94.9ns ± 0%  +0.29%  (p=0.001 n=8+9)
      QuoteMetaNone-12                   52.7ns ± 0%    52.7ns ± 0%    ~     (all equal)
      Match/Easy0/32-12                  72.9ns ± 0%    72.1ns ± 0%  -1.07%  (p=0.000 n=9+9)
      Match/Easy0/1K-12                   298ns ± 0%     298ns ± 0%    ~     (p=0.140 n=6+8)
      Match/Easy0/32K-12                 4.60µs ± 2%    4.64µs ± 1%    ~     (p=0.171 n=10+10)
      Match/Easy0/1M-12                   235µs ± 0%     234µs ± 0%  -0.14%  (p=0.004 n=10+10)
      Match/Easy0/32M-12                 7.96ms ± 0%    7.95ms ± 0%  -0.12%  (p=0.043 n=10+9)
      Match/Easy0i/32-12                 1.09µs ± 0%    1.10µs ± 0%  +0.15%  (p=0.000 n=8+9)
      Match/Easy0i/1K-12                 31.7µs ± 0%    31.8µs ± 1%    ~     (p=0.905 n=9+10)
      Match/Easy0i/32K-12                1.61ms ± 0%    1.62ms ± 1%  +1.12%  (p=0.000 n=9+10)
      Match/Easy0i/1M-12                 51.4ms ± 0%    51.8ms ± 0%  +0.85%  (p=0.000 n=8+8)
      Match/Easy0i/32M-12                 1.65s ± 1%     1.65s ± 0%    ~     (p=0.113 n=9+9)
      Match/Easy1/32-12                  67.9ns ± 0%    67.7ns ± 1%    ~     (p=0.232 n=8+10)
      Match/Easy1/1K-12                   884ns ± 0%     873ns ± 0%  -1.29%  (p=0.000 n=9+10)
      Match/Easy1/32K-12                 39.2µs ± 0%    39.4µs ± 0%  +0.50%  (p=0.000 n=9+10)
      Match/Easy1/1M-12                  1.39ms ± 0%    1.39ms ± 0%  +0.29%  (p=0.000 n=9+10)
      Match/Easy1/32M-12                 44.2ms ± 1%    44.3ms ± 0%  +0.21%  (p=0.029 n=10+10)
      Match/Medium/32-12                 1.05µs ± 0%    1.04µs ± 0%  -0.27%  (p=0.001 n=8+9)
      Match/Medium/1K-12                 31.3µs ± 0%    31.4µs ± 0%  +0.39%  (p=0.000 n=9+8)
      Match/Medium/32K-12                1.45ms ± 0%    1.45ms ± 0%  +0.33%  (p=0.000 n=8+9)
      Match/Medium/1M-12                 46.2ms ± 0%    46.4ms ± 0%  +0.35%  (p=0.000 n=9+8)
      Match/Medium/32M-12                 1.48s ± 0%     1.49s ± 1%  +0.70%  (p=0.000 n=8+10)
      Match/Hard/32-12                   1.49µs ± 0%    1.48µs ± 0%  -0.43%  (p=0.000 n=10+9)
      Match/Hard/1K-12                   45.1µs ± 1%    45.0µs ± 1%    ~     (p=0.393 n=10+10)
      Match/Hard/32K-12                  2.18ms ± 1%    2.24ms ± 0%  +2.71%  (p=0.000 n=9+8)
      Match/Hard/1M-12                   69.7ms ± 1%    71.6ms ± 0%  +2.76%  (p=0.000 n=9+7)
      Match/Hard/32M-12                   2.23s ± 1%     2.29s ± 0%  +2.65%  (p=0.000 n=9+9)
      Match/Hard1/32-12                  7.89µs ± 0%    7.89µs ± 0%    ~     (p=0.286 n=9+9)
      Match/Hard1/1K-12                   244µs ± 0%     244µs ± 0%    ~     (p=0.905 n=9+10)
      Match/Hard1/32K-12                 10.3ms ± 0%    10.3ms ± 0%    ~     (p=0.796 n=10+10)
      Match/Hard1/1M-12                   331ms ± 0%     331ms ± 0%    ~     (p=0.167 n=8+9)
      Match/Hard1/32M-12                  10.6s ± 0%     10.6s ± 0%    ~     (p=0.315 n=8+10)
      Match_onepass_regex/32-12           812ns ± 0%     830ns ± 0%  +2.19%  (p=0.000 n=10+9)
      Match_onepass_regex/1K-12          28.5µs ± 0%    28.7µs ± 1%  +0.97%  (p=0.000 n=10+9)
      Match_onepass_regex/32K-12          936µs ± 0%     949µs ± 0%  +1.43%  (p=0.000 n=10+8)
      Match_onepass_regex/1M-12          30.2ms ± 0%    30.4ms ± 0%  +0.62%  (p=0.000 n=10+8)
      Match_onepass_regex/32M-12          970ms ± 0%     973ms ± 0%  +0.35%  (p=0.000 n=10+9)
      CompileOnepass-12                  4.63µs ± 1%    4.64µs ± 0%    ~     (p=0.060 n=10+10)
      [Geo mean]                         23.3µs         23.3µs       +0.12%
      
      https://perf.golang.org/search?q=upload:20181004.2
      
      Change-Id: Iff9e9f9d4a4698162126a2f300e8ed1b1a39361e
      Reviewed-on: https://go-review.googlesource.com/c/139780
      Run-TryBot: Russ Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      60b29711
    • Russ Cox's avatar
      regexp: split bit-state execution out of machine struct · 2d4346b3
      Russ Cox authored
      This allows the bit-state executions to have their
      own pool of allocated structures. A step toward
      eliminating the per-Regexp machine cache.
      
      Note especially the -92% on MatchParallelShared.
      This is real but not a complete story: the other
      execution engines still need to be de-shared,
      but the benchmark was only using bit-state.
      
      The tiny slowdowns in unrelated code are noise.
      
      name                             old time/op    new time/op    delta
      Find-12                             264ns ± 3%     254ns ± 0%   -3.86%  (p=0.000 n=10+9)
      FindAllNoMatches-12                 140ns ± 2%     135ns ± 0%   -3.91%  (p=0.000 n=10+9)
      FindString-12                       256ns ± 0%     247ns ± 0%   -3.52%  (p=0.000 n=8+8)
      FindSubmatch-12                     339ns ± 1%     334ns ± 0%   -1.41%  (p=0.000 n=9+10)
      FindStringSubmatch-12               322ns ± 0%     321ns ± 0%   -0.21%  (p=0.005 n=8+9)
      Literal-12                          100ns ± 2%      92ns ± 0%   -8.10%  (p=0.000 n=10+9)
      NotLiteral-12                      1.50µs ± 0%    1.47µs ± 0%   -1.91%  (p=0.000 n=8+9)
      MatchClass-12                      2.18µs ± 0%    2.17µs ± 0%   -0.20%  (p=0.001 n=10+7)
      MatchClass_InRange-12              2.12µs ± 0%    2.13µs ± 0%   +0.23%  (p=0.000 n=10+10)
      ReplaceAll-12                      1.41µs ± 0%    1.39µs ± 0%   -1.30%  (p=0.000 n=7+10)
      AnchoredLiteralShortNonMatch-12    89.8ns ± 0%    83.2ns ± 0%   -7.35%  (p=0.000 n=8+8)
      AnchoredLiteralLongNonMatch-12      105ns ± 3%     105ns ± 0%     ~     (p=0.186 n=10+10)
      AnchoredShortMatch-12               141ns ± 0%     131ns ± 0%   -7.09%  (p=0.000 n=9+10)
      AnchoredLongMatch-12                276ns ± 4%     267ns ± 0%   -3.23%  (p=0.000 n=10+10)
      OnePassShortA-12                    620ns ± 0%     611ns ± 0%   -1.39%  (p=0.000 n=10+9)
      NotOnePassShortA-12                 575ns ± 3%     552ns ± 0%   -3.97%  (p=0.000 n=10+8)
      OnePassShortB-12                    493ns ± 0%     491ns ± 0%   -0.33%  (p=0.000 n=8+8)
      NotOnePassShortB-12                 423ns ± 0%     412ns ± 0%   -2.60%  (p=0.000 n=8+9)
      OnePassLongPrefix-12                112ns ± 0%     112ns ± 0%     ~     (all equal)
      OnePassLongNotPrefix-12             405ns ± 0%     410ns ± 0%   +1.23%  (p=0.000 n=8+9)
      MatchParallelShared-12              501ns ± 1%      39ns ± 1%  -92.27%  (p=0.000 n=10+10)
      MatchParallelCopied-12             39.1ns ± 0%    39.2ns ± 3%     ~     (p=0.785 n=6+10)
      QuoteMetaAll-12                    94.6ns ± 0%    94.6ns ± 0%     ~     (p=0.439 n=10+8)
      QuoteMetaNone-12                   52.7ns ± 0%    52.7ns ± 0%     ~     (all equal)
      Match/Easy0/32-12                  79.1ns ± 0%    72.9ns ± 0%   -7.85%  (p=0.000 n=9+9)
      Match/Easy0/1K-12                   307ns ± 1%     298ns ± 0%   -2.99%  (p=0.000 n=10+6)
      Match/Easy0/32K-12                 4.65µs ± 2%    4.60µs ± 2%     ~     (p=0.159 n=10+10)
      Match/Easy0/1M-12                   234µs ± 0%     235µs ± 0%   +0.17%  (p=0.003 n=10+10)
      Match/Easy0/32M-12                 7.98ms ± 1%    7.96ms ± 0%     ~     (p=0.278 n=9+10)
      Match/Easy0i/32-12                 1.13µs ± 1%    1.09µs ± 0%   -3.24%  (p=0.000 n=9+8)
      Match/Easy0i/1K-12                 32.5µs ± 0%    31.7µs ± 0%   -2.66%  (p=0.000 n=9+9)
      Match/Easy0i/32K-12                1.59ms ± 0%    1.61ms ± 0%   +0.75%  (p=0.000 n=9+9)
      Match/Easy0i/1M-12                 51.0ms ± 0%    51.4ms ± 0%   +0.77%  (p=0.000 n=10+8)
      Match/Easy0i/32M-12                 1.63s ± 0%     1.65s ± 1%   +1.24%  (p=0.000 n=7+9)
      Match/Easy1/32-12                  75.1ns ± 1%    67.9ns ± 0%   -9.54%  (p=0.000 n=8+8)
      Match/Easy1/1K-12                   861ns ± 0%     884ns ± 0%   +2.71%  (p=0.000 n=8+9)
      Match/Easy1/32K-12                 39.2µs ± 1%    39.2µs ± 0%     ~     (p=0.090 n=10+9)
      Match/Easy1/1M-12                  1.38ms ± 0%    1.39ms ± 0%     ~     (p=0.095 n=10+9)
      Match/Easy1/32M-12                 44.2ms ± 1%    44.2ms ± 1%     ~     (p=0.218 n=10+10)
      Match/Medium/32-12                 1.04µs ± 1%    1.05µs ± 0%   +1.05%  (p=0.000 n=9+8)
      Match/Medium/1K-12                 31.3µs ± 0%    31.3µs ± 0%   -0.14%  (p=0.004 n=9+9)
      Match/Medium/32K-12                1.44ms ± 0%    1.45ms ± 0%   +0.18%  (p=0.001 n=8+8)
      Match/Medium/1M-12                 46.1ms ± 0%    46.2ms ± 0%   +0.13%  (p=0.003 n=6+9)
      Match/Medium/32M-12                 1.48s ± 0%     1.48s ± 0%   +0.20%  (p=0.002 n=9+8)
      Match/Hard/32-12                   1.54µs ± 1%    1.49µs ± 0%   -3.60%  (p=0.000 n=9+10)
      Match/Hard/1K-12                   46.4µs ± 1%    45.1µs ± 1%   -2.78%  (p=0.000 n=9+10)
      Match/Hard/32K-12                  2.19ms ± 0%    2.18ms ± 1%   -0.51%  (p=0.006 n=8+9)
      Match/Hard/1M-12                   70.1ms ± 0%    69.7ms ± 1%   -0.52%  (p=0.006 n=8+9)
      Match/Hard/32M-12                   2.24s ± 0%     2.23s ± 1%   -0.42%  (p=0.046 n=8+9)
      Match/Hard1/32-12                  8.17µs ± 1%    7.89µs ± 0%   -3.42%  (p=0.000 n=8+9)
      Match/Hard1/1K-12                   254µs ± 2%     244µs ± 0%   -3.91%  (p=0.000 n=9+9)
      Match/Hard1/32K-12                 9.58ms ± 1%   10.35ms ± 0%   +8.00%  (p=0.000 n=10+10)
      Match/Hard1/1M-12                   306ms ± 1%     331ms ± 0%   +8.27%  (p=0.000 n=9+8)
      Match/Hard1/32M-12                  9.79s ± 1%    10.60s ± 0%   +8.29%  (p=0.000 n=9+8)
      Match_onepass_regex/32-12           808ns ± 0%     812ns ± 0%   +0.47%  (p=0.000 n=8+10)
      Match_onepass_regex/1K-12          27.8µs ± 0%    28.5µs ± 0%   +2.32%  (p=0.000 n=8+10)
      Match_onepass_regex/32K-12          925µs ± 0%     936µs ± 0%   +1.24%  (p=0.000 n=9+10)
      Match_onepass_regex/1M-12          29.5ms ± 0%    30.2ms ± 0%   +2.38%  (p=0.000 n=10+10)
      Match_onepass_regex/32M-12          945ms ± 0%     970ms ± 0%   +2.60%  (p=0.000 n=9+10)
      CompileOnepass-12                  4.67µs ± 0%    4.63µs ± 1%   -0.84%  (p=0.000 n=10+10)
      [Geo mean]                         24.5µs         23.3µs        -5.04%
      
      https://perf.golang.org/search?q=upload:20181004.1
      
      Change-Id: Idbc2b76223718265657819ff38be2d9aba1c54b4
      Reviewed-on: https://go-review.googlesource.com/c/139779
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      2d4346b3
    • Russ Cox's avatar
      testing: implement -benchtime=100x · 8e0aea16
      Russ Cox authored
      When running benchmarks with profilers and trying to
      compare one run against another, it is very useful to be
      able to force each run to execute exactly the same number
      of iterations.
      
      Discussion on the proposal issue #24735 led to the decision
      to overload -benchtime, so that instead of saying
      -benchtime 10s to run a benchmark for 10 seconds,
      you say -benchtime 100x to run a benchmark 100 times.
      
      Fixes #24735.
      
      Change-Id: Id17c5bd18bd09987bb48ed12420d61ae9e200fd7
      Reviewed-on: https://go-review.googlesource.com/c/139258
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: 's avatarAustin Clements <austin@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      8e0aea16
    • Robert Griesemer's avatar
      go/types: remove a test case and update comment · 56131cbd
      Robert Griesemer authored
      The original need for the extra test case and issue was eliminated
      by https://golang.org/cl/116815 which introduced systematic cycle
      detection. Now that we correctly report the cycle, we can't say much
      about the invalid cast anyway (the type is invalid due to the cycle).
      
      A more sophisticated approach would be able to tell the size of
      a function type independent of the details of that type, but the
      type-checker is not set up for this kind of lazy type-checking.
      
      Fixes #23127.
      
      Change-Id: Ia8479e66baf630ce96f6f36770c8e1c810c59ddc
      Reviewed-on: https://go-review.googlesource.com/c/141640
      Run-TryBot: Robert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarAlan Donovan <adonovan@google.com>
      56131cbd
    • Martin Möhrmann's avatar
      internal/cpu: use 'off' for disabling cpu capabilities instead of '0' · 4fb8b1de
      Martin Möhrmann authored
      Updates #27218
      
      Change-Id: I4ce20376fd601b5f958d79014af7eaf89e9de613
      Reviewed-on: https://go-review.googlesource.com/c/141818
      Run-TryBot: Martin Möhrmann <moehrmann@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      4fb8b1de
    • Tobias Klauser's avatar
      internal/poll: add FD.Fsync on aix · d82e51a1
      Tobias Klauser authored
      Follow-up for CL 138717. This fixes the build of the os package on
      aix.
      
      Change-Id: I879b9360e71837ab622ae3a7b6144782cf5a9ce7
      Reviewed-on: https://go-review.googlesource.com/c/141797
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      d82e51a1
    • Martin Möhrmann's avatar
      internal/cpu: enable support for GODEBUGCPU in non-experimental builds · a5248acd
      Martin Möhrmann authored
      Enabling GODEBUGCPU without the need to set GOEXPERIMENT=debugcpu  enables
      trybots and builders to run tests for GODEBUGCPU features in upcoming CLs
      that will implement the new syntax and features for non-experimental
      GODEBUGCPU support from proposal golang.org/issue/27218.
      
      Updates #27218
      
      Change-Id: Icc69e51e736711a86b02b46bd441ffc28423beba
      Reviewed-on: https://go-review.googlesource.com/c/141817
      Run-TryBot: Martin Möhrmann <moehrmann@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      a5248acd
    • Brad Fitzpatrick's avatar
      net/http: flesh out Transport's HTTP/1 CONNECT+bidi support to match HTTP/2 · da6c1683
      Brad Fitzpatrick authored
      Fixes #17227
      
      Change-Id: I0f8964593d69623b85d5759f6276063ee62b2915
      Reviewed-on: https://go-review.googlesource.com/c/123156Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      da6c1683
    • Yuval Pavel Zholkover's avatar
      syscall: correctly pad with NUL in FreeBSD convertFromDirents11 · e19f5754
      Yuval Pavel Zholkover authored
      We weren't writing a terminating NUL after dstDirent.Namlen bytes of dstDirent.Name.
      And we weren't filling the possible additional bytes until dstDirent.Reclen.
      
      Fixes #28131
      
      Change-Id: Id691c25225795c0dbb0d7004bfca7bb7fc706de9
      Reviewed-on: https://go-review.googlesource.com/c/141297
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      e19f5754
    • Mihai Todor's avatar
      encoding/base64: fix typo in decodeQuantum docs · 1f95e0a9
      Mihai Todor authored
      Change-Id: I643540bcea574d8a70b79237d97097dcc7368766
      GitHub-Last-Rev: e2be58d1ab84f91dfbba1067aae7145f24fd650d
      GitHub-Pull-Request: golang/go#28125
      Reviewed-on: https://go-review.googlesource.com/c/141119Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      1f95e0a9
    • Elias Naur's avatar
      os: make UserHomeDir return "/" on iOS · 93cf82f0
      Elias Naur authored
      The UserHomeDir test succeeds on the builder, but not when run
      manually where HOME is set to the host $HOME.
      
      Change-Id: I1db0f608b04b311b53cc0c8160a3778caaf542f6
      Reviewed-on: https://go-review.googlesource.com/c/141798
      Run-TryBot: Elias Naur <elias.naur@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      93cf82f0
  2. 11 Oct, 2018 17 commits
    • Matthew Dempsky's avatar
      cmd/compile/internal/gc: remove OCMPIFACE/OCMPSTR placeholders · a0d6420d
      Matthew Dempsky authored
      Change-Id: If05f6146a1fd97f61fc71629c5c29df43220d0c8
      Reviewed-on: https://go-review.googlesource.com/c/141638Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      a0d6420d
    • Matthew Dempsky's avatar
      cmd/compile/internal/gc: remove OCMPIFACE and OCMPSTR · 28fbbf41
      Matthew Dempsky authored
      Interface and string comparisons don't need separate Ops any more than
      struct or array comparisons do.
      
      Removing them requires shuffling some code around in walk (and a
      little in order), but overall allows simplifying things a bit.
      
      Passes toolstash-check.
      
      Change-Id: I084b8a6c089b768dc76d220379f4daed8a35db15
      Reviewed-on: https://go-review.googlesource.com/c/141637
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      28fbbf41
    • Robert Griesemer's avatar
      go/scanner: don't return token.INVALID for ".." sequence · f64fd66f
      Robert Griesemer authored
      Per the spec, "...the next token is the longest sequence of characters
      that form a valid token." Thus, encountering a ".." sequence should
      return two token.PERIOD tokens rather than a single token.ILLEGAL.
      
      Fixes #28112.
      
      Change-Id: Iba5da841f40036e53f48f9be23f933f362e67f5e
      Reviewed-on: https://go-review.googlesource.com/c/141337Reviewed-by: 's avatarDmitri Shuralyov <dmitshur@golang.org>
      f64fd66f
    • Ian Davis's avatar
      cmd/vet: detect non-pointer arguments for unmarshal and decode · 7fb60eb1
      Ian Davis authored
      Checks usage of Unmarshal and Decode functions in json, gob and
      xml packages to detect attempts to decode into non-pointer types.
      
      Fixes #27564
      
      Change-Id: I07bbd5be82d61834ffde9af9937329d7fb1f05d0
      Reviewed-on: https://go-review.googlesource.com/c/139997
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarAlan Donovan <adonovan@google.com>
      7fb60eb1
    • Robert Griesemer's avatar
      go/types: use correct receiver types for embedded interface methods · 76f57845
      Robert Griesemer authored
      Interface methods don't declare a receiver (it's implicit), but after
      type-checking the respective *types.Func objects are marked as methods
      by having a receiver. For interface methods, the receiver base type used
      to be the interface that declared the method in the first place, even if
      the method also appeared in other interfaces via embedding. A change in
      the computation of method sets for interfaces for Go1.10 changed that
      inadvertently, with the consequence that sometimes a method's receiver
      type ended up being an interface into which the method was embedded.
      The exact behavior also depended on file type-checking order, and because
      files are sometimes sorted by name, the behavior depended on file names.
      
      This didn't matter for type-checking (the typechecker doesn't need the
      receiver), but it matters for clients, and for printing of methods.
      
      This change fixes interface method receivers at the end of type-checking
      when we have all relevant information.
      
      Fixes #28005.
      
      Change-Id: I96c120fb0e517d7f8a14b8530f0273674569d5ea
      Reviewed-on: https://go-review.googlesource.com/c/141358Reviewed-by: 's avatarAlan Donovan <adonovan@google.com>
      76f57845
    • Russ Cox's avatar
      regexp: fix BenchmarkMatch_onepass_regex · 872a5479
      Russ Cox authored
      This benchmark - in contrast to all other benchmarks - was
      running the regexp match on 1-byte substrings of the input
      instead of the entire input. Worse, it was doing so by preallocating
      a slice of slices of every 1-byte substring. Needless to say,
      this does not accurately reflect what happens when the regexp
      matcher is given a large input.
      
      Change-Id: Icd5b95f0e43f554a6b93164916745941366e03d6
      Reviewed-on: https://go-review.googlesource.com/c/139778
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      872a5479
    • Russ Cox's avatar
      regexp: simplify BenchmarkCompileOnepass · e2d70b8b
      Russ Cox authored
      One benchmark is fine.
      Having one per test case is overkill.
      
      Change-Id: Id4ce789484dab1e79026bdd23cbcd63b2eaceb3f
      Reviewed-on: https://go-review.googlesource.com/c/139777
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      e2d70b8b
    • Florian's avatar
      doc: add link to the Go Discord forum · 689321e1
      Florian authored
      I've linked the  gophers discord. It's a well administered discord which already got many members, but it was never officially linked. For many people it's a quality proof if a discord is linked on the official page. I think there are much more people out there, who would prefer to use discord instead of slack or irc.
      
      The discord already got many users without even being promoted, so it's very likely there are many people who are interested in a discord, but they don't want to use unofficial discords. This discord shouldn't be seen as a competitor for the slack, it's a platform for those, who don't want to use slack.
      
      Change-Id: Ib1ee7173f394b810f5cccf67b498485ecbf8a7db
      GitHub-Last-Rev: 286ebad994a52f55b685deeda8a86cfac4a9964b
      GitHub-Pull-Request: golang/go#24176
      Reviewed-on: https://go-review.googlesource.com/c/97718Reviewed-by: 's avatarAndrew Bonventre <andybons@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      689321e1
    • Clément Chigot's avatar
      os: add AIX operating system · 835f983d
      Clément Chigot authored
      This commit adds AIX operating system to os package for ppc64
      architecture.
      
      Updates: #25893
      
      Change-Id: Ieb9a2b3ac5b9abd3b5ab68eb732c17b6256d624d
      Reviewed-on: https://go-review.googlesource.com/c/138725Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      835f983d
    • David Chase's avatar
      cmd/compile: repair display of values & blocks in prog column · 69c5830c
      David Chase authored
      This restores the printing of vXX and bYY in the left-hand
      edge of the last column of ssa.html, where the generated
      progs appear.
      
      Change-Id: I81ab9b2fa5ae28e6e5de1b77665cfbed8d14e000
      Reviewed-on: https://go-review.googlesource.com/c/141277
      Run-TryBot: David Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarYury Smolsky <yury@smolsky.by>
      69c5830c
    • Ben Shi's avatar
      test/codegen: add more arm64 test cases · bac6a292
      Ben Shi authored
      This CL adds 3 combined load test cases for arm64.
      
      Change-Id: I2c67308c40fd8a18f9f2d16c6d12911dcdc583e2
      Reviewed-on: https://go-review.googlesource.com/c/140700
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      bac6a292
    • Clément Chigot's avatar
      path/filepath: add AIX operating system · 1d0e94b1
      Clément Chigot authored
      This commit adds AIX operating system to path/filepath package
      for ppc64 architecture.
      
      Updates: #25893
      
      Change-Id: Iea551236d334705a58a446c8992b20adcfe4159b
      Reviewed-on: https://go-review.googlesource.com/c/138726Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      1d0e94b1
    • Carlos Eduardo Seo's avatar
      cmd/compile: intrinsify TrailingZeros16, OnesCount{8,16} for ppc64x · 23578f9d
      Carlos Eduardo Seo authored
      This change implements TrailingZeros16, OnesCount8 and OnesCount16
      as intrinsics for ppc64x.
      
      benchmark                       old ns/op     new ns/op     delta
      BenchmarkTrailingZeros16-40     2.16          1.61          -25.46%
      
      benchmark                   old ns/op     new ns/op     delta
      BenchmarkOnesCount-40       0.71          0.71          +0.00%
      BenchmarkOnesCount8-40      0.93          0.69          -25.81%
      BenchmarkOnesCount16-40     1.54          0.75          -51.30%
      BenchmarkOnesCount32-40     0.75          0.74          -1.33%
      BenchmarkOnesCount64-40     0.71          0.71          +0.00%
      
      Change-Id: I010fa9c0ef596a09362870d81193c633e70da637
      Reviewed-on: https://go-review.googlesource.com/c/139137
      Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarLynn Boger <laboger@linux.vnet.ibm.com>
      23578f9d
    • LotusFenn's avatar
      bytes: vary the input alignment to Compare argument in compare_test.go · c96c2a39
      LotusFenn authored
      Currently there are no tests that vary the alignment of Compare arguments.
      Since Compare is written in assembly on most platforms (in internal/bytealg)
      we should be testing different input alignments. This change modifies TestCompare
      to vary the alignment of the second argument of Compare.
      
      Updates #26129
      
      Change-Id: I4c30a5adf96a41225df748675f4e9beea413b35c
      Reviewed-on: https://go-review.googlesource.com/c/122536Reviewed-by: 's avatarLotus Fenn <fenn.lotus@gmail.com>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      c96c2a39
    • Rob Pike's avatar
      text/template: explain that integer constants can overflow · 9a9dc36f
      Rob Pike authored
      This behavior is the same as in Go: constants can be coerced to int
      and whether overflow occurs depends on how big an int is, but
      this surprises people sometimes, so document it again here.
      
      Fixes #25833.
      
      Change-Id: I557995f1a1e8e871b21004953923d16f36cb9037
      Reviewed-on: https://go-review.googlesource.com/c/141378Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      9a9dc36f
    • Rob Pike's avatar
      unsafe: document that Alignof, Offsetof, and Sizeof return a constant · daf6f254
      Rob Pike authored
      Nothing is changing but the documentation, which did not mention
      this property of these functions.
      
      Fixes #27587.
      
      Change-Id: I75bcee4a1dd9ec8cd82826c9a6e02ba7d599f719
      Reviewed-on: https://go-review.googlesource.com/c/141377Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      daf6f254
    • Ben Shi's avatar
      cmd/compile: optimize 386's ADDLconstmodifyidx4 · 27965c14
      Ben Shi authored
      This CL optimize ADDLconstmodifyidx4 to INCL/DECL, when the
      constant is +1/-1.
      
      1. The total size of pkg/linux_386/ decreases 28 bytes, excluding
      cmd/compile.
      
      2. There is no regression in the go1 benchmark test, excluding noise.
      name                     old time/op    new time/op    delta
      BinaryTree17-4              3.25s ± 2%     3.23s ± 3%  -0.70%  (p=0.040 n=30+30)
      Fannkuch11-4                3.50s ± 1%     3.47s ± 1%  -0.68%  (p=0.000 n=30+30)
      FmtFprintfEmpty-4          44.6ns ± 3%    44.8ns ± 3%  +0.46%  (p=0.029 n=30+30)
      FmtFprintfString-4         79.0ns ± 3%    78.7ns ± 3%    ~     (p=0.053 n=30+30)
      FmtFprintfInt-4            89.2ns ± 2%    89.4ns ± 3%    ~     (p=0.665 n=30+29)
      FmtFprintfIntInt-4          142ns ± 3%     142ns ± 3%    ~     (p=0.435 n=30+30)
      FmtFprintfPrefixedInt-4     182ns ± 2%     182ns ± 2%    ~     (p=0.964 n=30+30)
      FmtFprintfFloat-4           407ns ± 3%     411ns ± 4%    ~     (p=0.080 n=30+30)
      FmtManyArgs-4               597ns ± 3%     593ns ± 4%    ~     (p=0.222 n=30+30)
      GobDecode-4                7.09ms ± 6%    7.07ms ± 7%    ~     (p=0.633 n=30+30)
      GobEncode-4                6.81ms ± 9%    6.81ms ± 8%    ~     (p=0.982 n=30+30)
      Gzip-4                      398ms ± 4%     400ms ± 6%    ~     (p=0.177 n=30+30)
      Gunzip-4                   41.3ms ± 3%    40.6ms ± 4%  -1.71%  (p=0.005 n=30+30)
      HTTPClientServer-4         63.4µs ± 3%    63.4µs ± 4%    ~     (p=0.646 n=30+28)
      JSONEncode-4               16.0ms ± 3%    16.1ms ± 3%    ~     (p=0.057 n=30+30)
      JSONDecode-4               63.3ms ± 8%    63.1ms ± 7%    ~     (p=0.786 n=30+30)
      Mandelbrot200-4            5.17ms ± 3%    5.15ms ± 8%    ~     (p=0.654 n=30+30)
      GoParse-4                  3.24ms ± 3%    3.23ms ± 2%    ~     (p=0.091 n=30+30)
      RegexpMatchEasy0_32-4       103ns ± 4%     103ns ± 4%    ~     (p=0.575 n=30+30)
      RegexpMatchEasy0_1K-4       823ns ± 2%     821ns ± 3%    ~     (p=0.827 n=30+30)
      RegexpMatchEasy1_32-4       113ns ± 3%     112ns ± 3%    ~     (p=0.076 n=30+30)
      RegexpMatchEasy1_1K-4      1.02µs ± 4%    1.01µs ± 5%    ~     (p=0.087 n=30+30)
      RegexpMatchMedium_32-4      129ns ± 3%     127ns ± 4%  -1.55%  (p=0.009 n=30+30)
      RegexpMatchMedium_1K-4     39.3µs ± 4%    39.7µs ± 3%    ~     (p=0.054 n=30+30)
      RegexpMatchHard_32-4       2.15µs ± 4%    2.15µs ± 4%    ~     (p=0.712 n=30+30)
      RegexpMatchHard_1K-4       66.0µs ± 3%    65.1µs ± 3%  -1.32%  (p=0.002 n=30+30)
      Revcomp-4                   1.85s ± 2%     1.85s ± 3%    ~     (p=0.168 n=30+30)
      Template-4                 69.5ms ± 7%    68.9ms ± 6%    ~     (p=0.250 n=28+28)
      TimeParse-4                 434ns ± 3%     432ns ± 4%    ~     (p=0.629 n=30+30)
      TimeFormat-4                403ns ± 4%     408ns ± 3%  +1.23%  (p=0.019 n=30+29)
      [Geo mean]                 65.5µs         65.3µs       -0.20%
      
      name                     old speed      new speed      delta
      GobDecode-4               108MB/s ± 6%   109MB/s ± 6%    ~     (p=0.636 n=30+30)
      GobEncode-4               113MB/s ±10%   113MB/s ± 9%    ~     (p=0.982 n=30+30)
      Gzip-4                   48.8MB/s ± 4%  48.6MB/s ± 5%    ~     (p=0.178 n=30+30)
      Gunzip-4                  470MB/s ± 3%   479MB/s ± 4%  +1.72%  (p=0.006 n=30+30)
      JSONEncode-4              121MB/s ± 3%   120MB/s ± 3%    ~     (p=0.057 n=30+30)
      JSONDecode-4             30.7MB/s ± 8%  30.8MB/s ± 8%    ~     (p=0.784 n=30+30)
      GoParse-4                17.9MB/s ± 3%  17.9MB/s ± 2%    ~     (p=0.090 n=30+30)
      RegexpMatchEasy0_32-4     309MB/s ± 4%   309MB/s ± 3%    ~     (p=0.530 n=30+30)
      RegexpMatchEasy0_1K-4    1.24GB/s ± 2%  1.25GB/s ± 3%    ~     (p=0.976 n=30+30)
      RegexpMatchEasy1_32-4     282MB/s ± 3%   284MB/s ± 3%  +0.81%  (p=0.041 n=30+30)
      RegexpMatchEasy1_1K-4    1.00GB/s ± 3%  1.01GB/s ± 4%    ~     (p=0.091 n=30+30)
      RegexpMatchMedium_32-4   7.71MB/s ± 3%  7.84MB/s ± 4%  +1.71%  (p=0.000 n=30+30)
      RegexpMatchMedium_1K-4   26.1MB/s ± 4%  25.8MB/s ± 3%    ~     (p=0.051 n=30+30)
      RegexpMatchHard_32-4     14.9MB/s ± 4%  14.9MB/s ± 4%    ~     (p=0.712 n=30+30)
      RegexpMatchHard_1K-4     15.5MB/s ± 3%  15.7MB/s ± 3%  +1.34%  (p=0.003 n=30+30)
      Revcomp-4                 138MB/s ± 2%   137MB/s ± 3%    ~     (p=0.174 n=30+30)
      Template-4               28.0MB/s ± 6%  28.2MB/s ± 6%    ~     (p=0.251 n=28+28)
      [Geo mean]               82.3MB/s       82.6MB/s       +0.36%
      
      Change-Id: I389829699ffe9500a013fcf31be58a97e98043e1
      Reviewed-on: https://go-review.googlesource.com/c/140701
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      27965c14
  3. 10 Oct, 2018 12 commits
    • Matthew Dempsky's avatar
      cmd/compile/internal/types: regen stringer file · 5b2030cb
      Matthew Dempsky authored
      Forgot to do this for golang.org/cl/76312.
      
      Change-Id: Ic20fef3eeff14a805f608221aff1fa03934be3ca
      Reviewed-on: https://go-review.googlesource.com/c/141357
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      5b2030cb
    • Rob Pike's avatar
      cmd/doc: add a -src flag to show original source · 294d16c9
      Rob Pike authored
      It's long-desired but was blocked by #26835. That is now fixed, so
      it's easy. When -src is off, we behave as before. But with -src
      set, initialize the go/doc package to preserve the original AST and
      things flow very easily.
      
      With -src, since you're seeing inside the package source anyway it
      shows unexported fields and constants: you see the original source.
      But you still need -u to ask about them.
      
      Fixes #18807
      
      Change-Id: I473e90323b4eff0735360274dc0d2d9dba16ff8b
      Reviewed-on: https://go-review.googlesource.com/c/140959Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
      Run-TryBot: Andrew Gerrand <adg@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      294d16c9
    • Rob Pike's avatar
      go/doc: add new mode bit PreserveAST to control clearing of data in AST · d5e72203
      Rob Pike authored
      To save memory in godoc, this package routinely clears fields of
      the AST to avoid keeping data that godoc no longer needs. For other
      programs, such as cmd/doc, this behavior is unfortunate. Also, one
      should be able to tell any package like this, "don't change my
      data".
      
      Add a Mode bit, defaulting to off to preserve existing behavior,
      that allows a client to specify that the AST is inviolate.
      
      This is necessary to address some of the outstanding issues
      in cmd/doc that require, for example, looking at function bodies.
      
      Fixes #26835
      
      Change-Id: I01cc97c6addc5ab6abff885fff4bd53454a03bbc
      Reviewed-on: https://go-review.googlesource.com/c/140958Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      d5e72203
    • Josh Bleecher Snyder's avatar
      cmd/compile: remove some inl budget hacks · 555d8c45
      Josh Bleecher Snyder authored
      Prior to stack tracing, inlining could cause
      dead pointers to be kept alive in some loops.
      See #18336 and CL 31674.
      
      The adjustment removed by this change preserved the inlining status quo
      in the face of Node structure changes, to avoid creating new problems.
      Now that stack tracing provides precision, these hacks can be removed.
      
      Of course, our inlining code model is already hacky (#17566),
      but at least now there will be fewer epicyclical hacks.
      
      Newly inline-able functions in std cmd as a result of this change:
      
      hash/adler32/adler32.go:65:6: can inline (*digest).UnmarshalBinary
      hash/fnv/fnv.go:281:6: can inline (*sum32).UnmarshalBinary
      hash/fnv/fnv.go:292:6: can inline (*sum32a).UnmarshalBinary
      reflect/value.go:1298:6: can inline Value.OverflowComplex
      compress/bzip2/bit_reader.go:25:6: can inline newBitReader
      encoding/xml/xml.go:365:6: can inline (*Decoder).switchToReader
      vendor/golang_org/x/crypto/cryptobyte/builder.go:77:6: can inline (*Builder).AddUint16
      crypto/x509/x509.go:1851:58: can inline buildExtensions.func2.1.1
      crypto/x509/x509.go:1871:58: can inline buildExtensions.func2.3.1
      crypto/x509/x509.go:1883:58: can inline buildExtensions.func2.4.1
      cmd/vet/internal/cfg/builder.go:463:6: can inline (*builder).labeledBlock
      crypto/tls/handshake_messages.go:1450:6: can inline (*newSessionTicketMsg).marshal
      crypto/tls/handshake_server.go:769:6: can inline (*serverHandshakeState).clientHelloInfo
      crypto/tls/handshake_messages.go:1171:6: can inline (*nextProtoMsg).unmarshal
      cmd/link/internal/amd64/obj.go:40:6: can inline Init
      cmd/link/internal/ppc64/obj.go:40:6: can inline Init
      net/http/httputil/persist.go:54:6: can inline NewServerConn
      net/http/fcgi/child.go:83:6: can inline newResponse
      cmd/compile/internal/ssa/poset.go:245:6: can inline (*poset).newnode
      
      Change-Id: I19e8e383a6273849673d35189a9358870665f82f
      Reviewed-on: https://go-review.googlesource.com/c/141117
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIlya Tocar <ilya.tocar@intel.com>
      Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
      555d8c45
    • Tobias Klauser's avatar
      syscall: add marker comments to zsyscall_{aix,solaris}_*.go · fa0c15ea
      Tobias Klauser authored
      These marker comments are in every other zsyscall_*.go file generated by
      mksyscall.pl. Also add them to the files generated by mksyscall_libc.pl
      used for aix and solaris.
      
      Change-Id: I7fd125df3549d83c658bbe7424861c76c024f2e5
      Reviewed-on: https://go-review.googlesource.com/c/141037
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      fa0c15ea
    • Clément Chigot's avatar
      net: add AIX operating system · 9ff11b02
      Clément Chigot authored
      This commit adds AIX operating system to net package for ppc64
      architecture.
      
      Updates: #25893
      
      Change-Id: I46bbc7b03931019beb969443cb3f9a756956c66c
      Reviewed-on: https://go-review.googlesource.com/c/138724
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      9ff11b02
    • Keith Randall's avatar
      cmd/compile: make []byte("...") more efficient · ceb0c371
      Keith Randall authored
      Do []byte(string) conversions more efficiently when the string
      is a constant. Instead of calling stringtobyteslice, allocate
      just the space we need and encode the initialization directly.
      
      []byte("foo") rewrites to the following pseudocode:
      
      var s [3]byte // on heap or stack, depending on whether b escapes
      s = *(*[3]byte)(&"foo"[0]) // initialize s from the string
      b = s[:]
      
      which generates this assembly:
      
      	0x001d 00029 (tmp1.go:9)	LEAQ	type.[3]uint8(SB), AX
      	0x0024 00036 (tmp1.go:9)	MOVQ	AX, (SP)
      	0x0028 00040 (tmp1.go:9)	CALL	runtime.newobject(SB)
      	0x002d 00045 (tmp1.go:9)	MOVQ	8(SP), AX
      	0x0032 00050 (tmp1.go:9)	MOVBLZX	go.string."foo"+2(SB), CX
      	0x0039 00057 (tmp1.go:9)	MOVWLZX	go.string."foo"(SB), DX
      	0x0040 00064 (tmp1.go:9)	MOVW	DX, (AX)
      	0x0043 00067 (tmp1.go:9)	MOVB	CL, 2(AX)
      // Then the slice is b = {AX, 3, 3}
      
      The generated code is still not optimal, as it still does load/store
      from read-only memory instead of constant stores.  Next CL...
      
      Update #26498
      Fixes #10170
      
      Change-Id: I4b990b19f9a308f60c8f4f148934acffefe0a5bd
      Reviewed-on: https://go-review.googlesource.com/c/140698
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      ceb0c371
    • Clément Chigot's avatar
      mime: add AIX operating system · 05581fcc
      Clément Chigot authored
      This commit adds AIX operating system to mime package for ppc64
      architecture.
      
      Updates: #25893
      
      Change-Id: I1b81a9204446c8c76ae24ea5c6fd33077c373ae4
      Reviewed-on: https://go-review.googlesource.com/c/138723
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      05581fcc
    • Clément Chigot's avatar
      crypto: add AIX operating system · 29907b13
      Clément Chigot authored
      This commit adds AIX operating system to crypto package for ppc64
      architecture.
      
      Updates: #25893
      
      Change-Id: I20047ff2fef0051b8b235ec15b064c4a95c2b9c3
      Reviewed-on: https://go-review.googlesource.com/c/138722
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      29907b13
    • Clément Chigot's avatar
      time: add AIX operating system · 1c88ce5f
      Clément Chigot authored
      This commit adds AIX operating system to time package for ppc64
      architecture.
      
      Updates: #25893
      
      Change-Id: I4fb6fb47eae7671bf4e22729d6d160f557083c44
      Reviewed-on: https://go-review.googlesource.com/c/138721
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      1c88ce5f
    • Lynn Boger's avatar
      cmd/internal/obj/ppc64: generate float 0 more efficiently on ppc64x · f776d51b
      Lynn Boger authored
      This change makes use of a VSX instruction to generate the
      float 0 value instead of generating a constant in memory and
      loading it from there.
      
      This uses 1 instruction instead of 2 and avoids a memory reference.
      in the +0 case, uses 2 instructions in the -0 case but avoids
      the memory reference.
      
      Since this is done in the assembler for ppc64x, an update has
      been made to the assembler test.
      
      Change-Id: Ief7dddcb057bfb602f78215f6947664e8c841464
      Reviewed-on: https://go-review.googlesource.com/c/139420Reviewed-by: 's avatarMichael Munday <mike.munday@ibm.com>
      f776d51b
    • Clément Chigot's avatar
      syscall: add AIX operating system · 8f9902da
      Clément Chigot authored
      This commit adds AIX operating system to syscall package for ppc64
      architecture.
      It also adds the file syscall_aix.go in the runtime package for
      syscalls needed during fork and exec.
      
      Updates: #25893
      
      Change-Id: I301b1051b178a3efb7bbc39cdbd8e00b594d65ef
      Reviewed-on: https://go-review.googlesource.com/c/138720
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      8f9902da