1. 18 Dec, 2018 6 commits
    • Clément Chigot's avatar
      cmd/link: optimize access to data symbols for aix/ppc64 · cebf9d47
      Clément Chigot authored
      This commit changes the second instruction used to retrieve a symbol on
      aix/ppc64 if it is in .data or .bss section.
      
      The previous version always retrieves the symbol address via a load on
      its TOC symbol. However, as the TOC is also in .data, the symbol's address
      is close enough to be fetched directly and the load instruction can be
      replaced by an addi.
      
      Bench go1
      benchmark                             old ns/op      new ns/op      delta
      BenchmarkBinaryTree17-16              5919354000     5824897000     -1.60%
      BenchmarkFannkuch11-16                5206937000     5162043000     -0.86%
      BenchmarkFmtFprintfEmpty-16           106            105            -0.94%
      BenchmarkFmtFprintfString-16          165            165            +0.00%
      BenchmarkFmtFprintfInt-16             165            167            +1.21%
      BenchmarkFmtFprintfIntInt-16          303            239            -21.12%
      BenchmarkFmtFprintfPrefixedInt-16     282            283            +0.35%
      BenchmarkFmtFprintfFloat-16           434            381            -12.21%
      BenchmarkFmtManyArgs-16               1797           903            -49.75%
      BenchmarkGobDecode-16                 16000450       12173630       -23.92%
      BenchmarkGobEncode-16                 12007010       10258070       -14.57%
      BenchmarkGzip-16                      638581500      456050333      -28.58%
      BenchmarkGunzip-16                    111976900      74943900       -33.07%
      BenchmarkHTTPClientServer-16          206850         153716         -25.69%
      BenchmarkJSONEncode-16                32057380       17517130       -45.36%
      BenchmarkJSONDecode-16                182606400      106807700      -41.51%
      BenchmarkMandelbrot200-16             6896975        5616903        -18.56%
      BenchmarkGoParse-16                   11248260       6094115        -45.82%
      BenchmarkRegexpMatchEasy0_32-16       292            148            -49.32%
      BenchmarkRegexpMatchEasy0_1K-16       540            327            -39.44%
      BenchmarkRegexpMatchEasy1_32-16       243            150            -38.27%
      BenchmarkRegexpMatchEasy1_1K-16       1029           657            -36.15%
      BenchmarkRegexpMatchMedium_32-16      423            230            -45.63%
      BenchmarkRegexpMatchMedium_1K-16      107250         59683          -44.35%
      BenchmarkRegexpMatchHard_32-16        3353           3139           -6.38%
      BenchmarkRegexpMatchHard_1K-16        107277         93610          -12.74%
      BenchmarkRevcomp-16                   1124311500     677442500      -39.75%
      BenchmarkTemplate-16                  241286600      109177400      -54.75%
      BenchmarkTimeParse-16                 1058           562            -46.88%
      BenchmarkTimeFormat-16                1321           581            -56.02%
      
      benchmark                            old MB/s     new MB/s     speedup
      BenchmarkGobDecode-16                47.97        63.05        1.31x
      BenchmarkGobEncode-16                63.92        74.82        1.17x
      BenchmarkGzip-16                     30.39        42.55        1.40x
      BenchmarkGunzip-16                   173.29       258.92       1.49x
      BenchmarkJSONEncode-16               60.53        110.78       1.83x
      BenchmarkJSONDecode-16               10.63        18.17        1.71x
      BenchmarkGoParse-16                  5.15         9.50         1.84x
      BenchmarkRegexpMatchEasy0_32-16      109.42       215.86       1.97x
      BenchmarkRegexpMatchEasy0_1K-16      1896.22      3126.28      1.65x
      BenchmarkRegexpMatchEasy1_32-16      131.46       212.99       1.62x
      BenchmarkRegexpMatchEasy1_1K-16      994.55       1557.51      1.57x
      BenchmarkRegexpMatchMedium_32-16     2.36         4.34         1.84x
      BenchmarkRegexpMatchMedium_1K-16     9.55         17.16        1.80x
      BenchmarkRegexpMatchHard_32-16       9.54         10.19        1.07x
      BenchmarkRegexpMatchHard_1K-16       9.55         10.94        1.15x
      BenchmarkRevcomp-16                  226.06       375.19       1.66x
      BenchmarkTemplate-16                 8.04         17.77        2.21x
      
      Change-Id: Iaf2aa5953b99271361510c69a5ced3371f6c6c20
      Reviewed-on: https://go-review.googlesource.com/c/151201
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      cebf9d47
    • Clément Chigot's avatar
      doc/1.12: add notes about aix/ppc64 port · 34437f04
      Clément Chigot authored
      Fixes #29315
      
      Change-Id: I6ecc5109c23e7a7d9db54250bf041acc841701e3
      Reviewed-on: https://go-review.googlesource.com/c/154697Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      34437f04
    • Austin Clements's avatar
      runtime: flush on every write barrier while debugging · 2d00007b
      Austin Clements authored
      Currently, we flush the write barrier buffer on every write barrier
      once throwOnGCWork is set, but not during the mark completion
      algorithm itself. As seen in recent failures like
      
        https://build.golang.org/log/317369853b803b4ee762b27653f367e1aa445ac1
      
      by the time we actually catch a late gcWork put, the write barrier
      buffer is full-size again.
      
      As a result, we're probably not catching the actual problematic write
      barrier, which is probably somewhere in the buffer.
      
      Fix this by using the gcWork pause generation to also keep the write
      barrier buffer small between the mark completion flushes it and when
      mark completion is done.
      
      For #27993.
      
      Change-Id: I77618169441d42a7d562fb2a998cfaa89891edb2
      Reviewed-on: https://go-review.googlesource.com/c/154638
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      Reviewed-by: default avatarMichael Knyszek <mknyszek@google.com>
      2d00007b
    • Martin Möhrmann's avatar
      doc: document GODEBUG options to disable use of instruction set extensions · 9a258f30
      Martin Möhrmann authored
      Fixes #27218
      
      Change-Id: I4eb8e8f2486b20fe0ed6e3e2c6ec521c9e8c0032
      Reviewed-on: https://go-review.googlesource.com/c/149579Reviewed-by: default avatarAustin Clements <austin@google.com>
      9a258f30
    • Joel Sing's avatar
      runtime,cmd/dist,cmd/link: add cgo support on openbsd/arm · c52beb10
      Joel Sing authored
      Add support for cgo on openbsd/arm.The gcc shipped with base OpenBSD armv7
      is old/inadequate, so use clang by default.
      
      Change-Id: I945a26d369378952d357727718e69249411e1127
      Reviewed-on: https://go-review.googlesource.com/c/154381
      Run-TryBot: Joel Sing <joel@sing.id.au>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      c52beb10
    • Robert Griesemer's avatar
      cmd/compile: increase nesting depth limit for type descriptors · 99e4ddd0
      Robert Griesemer authored
      The formatting routines for types use a depth limit as primitive
      mechanism to detect cycles. For now, increase the limit from 100
      to 250 and file #29312 so we don't drop this on the floor.
      
      Also, adjust some fatal error messages elsewhere to use
      better formatting.
      
      Fixes #29264.
      Updates #29312.
      
      Change-Id: Idd529f6682d478e0dcd2d469cb802192190602f6
      Reviewed-on: https://go-review.googlesource.com/c/154583Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      99e4ddd0
  2. 17 Dec, 2018 19 commits
  3. 16 Dec, 2018 1 commit
  4. 15 Dec, 2018 4 commits
  5. 14 Dec, 2018 10 commits