1. 07 Apr, 2016 15 commits
    • Aliaksandr Valialkin's avatar
      math/big: re-use memory in Int.GCD · 187afdeb
      Aliaksandr Valialkin authored
      This improves TLS handshake performance.
      
      benchmark                                 old ns/op     new ns/op     delta
      BenchmarkGCD10x10/WithoutXY-4             965           968           +0.31%
      BenchmarkGCD10x10/WithXY-4                1813          1391          -23.28%
      BenchmarkGCD10x100/WithoutXY-4            1093          1075          -1.65%
      BenchmarkGCD10x100/WithXY-4               2348          1676          -28.62%
      BenchmarkGCD10x1000/WithoutXY-4           1569          1565          -0.25%
      BenchmarkGCD10x1000/WithXY-4              4262          3242          -23.93%
      BenchmarkGCD10x10000/WithoutXY-4          6069          6066          -0.05%
      BenchmarkGCD10x10000/WithXY-4             12123         11331         -6.53%
      BenchmarkGCD10x100000/WithoutXY-4         52664         52610         -0.10%
      BenchmarkGCD10x100000/WithXY-4            97494         95649         -1.89%
      BenchmarkGCD100x100/WithoutXY-4           5244          5228          -0.31%
      BenchmarkGCD100x100/WithXY-4              22572         18630         -17.46%
      BenchmarkGCD100x1000/WithoutXY-4          6143          6233          +1.47%
      BenchmarkGCD100x1000/WithXY-4             24652         19357         -21.48%
      BenchmarkGCD100x10000/WithoutXY-4         15725         15804         +0.50%
      BenchmarkGCD100x10000/WithXY-4            60552         55973         -7.56%
      BenchmarkGCD100x100000/WithoutXY-4        107008        107853        +0.79%
      BenchmarkGCD100x100000/WithXY-4           349597        340994        -2.46%
      BenchmarkGCD1000x1000/WithoutXY-4         63785         64434         +1.02%
      BenchmarkGCD1000x1000/WithXY-4            373186        334035        -10.49%
      BenchmarkGCD1000x10000/WithoutXY-4        78038         78241         +0.26%
      BenchmarkGCD1000x10000/WithXY-4           543692        507034        -6.74%
      BenchmarkGCD1000x100000/WithoutXY-4       205607        207727        +1.03%
      BenchmarkGCD1000x100000/WithXY-4          2488113       2415323       -2.93%
      BenchmarkGCD10000x10000/WithoutXY-4       1731340       1714992       -0.94%
      BenchmarkGCD10000x10000/WithXY-4          10601046      7111329       -32.92%
      BenchmarkGCD10000x100000/WithoutXY-4      2239155       2212173       -1.21%
      BenchmarkGCD10000x100000/WithXY-4         30097040      26538887      -11.82%
      BenchmarkGCD100000x100000/WithoutXY-4     119845326     119863916     +0.02%
      BenchmarkGCD100000x100000/WithXY-4        768006543     426795966     -44.43%
      
      benchmark                                 old allocs     new allocs     delta
      BenchmarkGCD10x10/WithoutXY-4             5              5              +0.00%
      BenchmarkGCD10x10/WithXY-4                17             9              -47.06%
      BenchmarkGCD10x100/WithoutXY-4            6              6              +0.00%
      BenchmarkGCD10x100/WithXY-4               21             9              -57.14%
      BenchmarkGCD10x1000/WithoutXY-4           6              6              +0.00%
      BenchmarkGCD10x1000/WithXY-4              30             12             -60.00%
      BenchmarkGCD10x10000/WithoutXY-4          6              6              +0.00%
      BenchmarkGCD10x10000/WithXY-4             26             12             -53.85%
      BenchmarkGCD10x100000/WithoutXY-4         6              6              +0.00%
      BenchmarkGCD10x100000/WithXY-4            28             12             -57.14%
      BenchmarkGCD100x100/WithoutXY-4           5              5              +0.00%
      BenchmarkGCD100x100/WithXY-4              183            61             -66.67%
      BenchmarkGCD100x1000/WithoutXY-4          8              8              +0.00%
      BenchmarkGCD100x1000/WithXY-4             170            47             -72.35%
      BenchmarkGCD100x10000/WithoutXY-4         8              8              +0.00%
      BenchmarkGCD100x10000/WithXY-4            200            67             -66.50%
      BenchmarkGCD100x100000/WithoutXY-4        8              8              +0.00%
      BenchmarkGCD100x100000/WithXY-4           188            65             -65.43%
      BenchmarkGCD1000x1000/WithoutXY-4         5              5              +0.00%
      BenchmarkGCD1000x1000/WithXY-4            2435           1193           -51.01%
      BenchmarkGCD1000x10000/WithoutXY-4        8              8              +0.00%
      BenchmarkGCD1000x10000/WithXY-4           2211           1076           -51.33%
      BenchmarkGCD1000x100000/WithoutXY-4       8              8              +0.00%
      BenchmarkGCD1000x100000/WithXY-4          2271           1108           -51.21%
      BenchmarkGCD10000x10000/WithoutXY-4       5              5              +0.00%
      BenchmarkGCD10000x10000/WithXY-4          23183          11605          -49.94%
      BenchmarkGCD10000x100000/WithoutXY-4      8              8              +0.00%
      BenchmarkGCD10000x100000/WithXY-4         23421          11717          -49.97%
      BenchmarkGCD100000x100000/WithoutXY-4     5              5              +0.00%
      BenchmarkGCD100000x100000/WithXY-4        232976         116815         -49.86%
      
      benchmark                                 old bytes      new bytes     delta
      BenchmarkGCD10x10/WithoutXY-4             208            208           +0.00%
      BenchmarkGCD10x10/WithXY-4                736            432           -41.30%
      BenchmarkGCD10x100/WithoutXY-4            256            256           +0.00%
      BenchmarkGCD10x100/WithXY-4               896            432           -51.79%
      BenchmarkGCD10x1000/WithoutXY-4           368            368           +0.00%
      BenchmarkGCD10x1000/WithXY-4              1856           1152          -37.93%
      BenchmarkGCD10x10000/WithoutXY-4          1616           1616          +0.00%
      BenchmarkGCD10x10000/WithXY-4             7920           7376          -6.87%
      BenchmarkGCD10x100000/WithoutXY-4         13776          13776         +0.00%
      BenchmarkGCD10x100000/WithXY-4            68800          68176         -0.91%
      BenchmarkGCD100x100/WithoutXY-4           208            208           +0.00%
      BenchmarkGCD100x100/WithXY-4              6960           2112          -69.66%
      BenchmarkGCD100x1000/WithoutXY-4          544            560           +2.94%
      BenchmarkGCD100x1000/WithXY-4             7280           2400          -67.03%
      BenchmarkGCD100x10000/WithoutXY-4         2896           2912          +0.55%
      BenchmarkGCD100x10000/WithXY-4            15280          10002         -34.54%
      BenchmarkGCD100x100000/WithoutXY-4        27344          27365         +0.08%
      BenchmarkGCD100x100000/WithXY-4           88288          83427         -5.51%
      BenchmarkGCD1000x1000/WithoutXY-4         544            544           +0.00%
      BenchmarkGCD1000x1000/WithXY-4            178288         40043         -77.54%
      BenchmarkGCD1000x10000/WithoutXY-4        3344           3136          -6.22%
      BenchmarkGCD1000x10000/WithXY-4           188720         54432         -71.16%
      BenchmarkGCD1000x100000/WithoutXY-4       27792          27592         -0.72%
      BenchmarkGCD1000x100000/WithXY-4          373872         239447        -35.95%
      BenchmarkGCD10000x10000/WithoutXY-4       4288           4288          +0.00%
      BenchmarkGCD10000x10000/WithXY-4          11935584       481875        -95.96%
      BenchmarkGCD10000x100000/WithoutXY-4      31296          28834         -7.87%
      BenchmarkGCD10000x100000/WithXY-4         13237088       1662620       -87.44%
      BenchmarkGCD100000x100000/WithoutXY-4     40768          40768         +0.00%
      BenchmarkGCD100000x100000/WithXY-4        1165518864     14256010      -98.78%
      
      Change-Id: I652b3244bd074a03f3bc9a87c282330f9e5f1507
      Reviewed-on: https://go-review.googlesource.com/21506Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      187afdeb
    • Michael Munday's avatar
      math/big: add s390x function implementations · 1e7c61d8
      Michael Munday authored
      Change-Id: I2aadc885d6330460e494c687757f07c5e006f3b0
      Reviewed-on: https://go-review.googlesource.com/20937Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      1e7c61d8
    • Michael Munday's avatar
      sync/atomic: add s390x implementations of atomic functions · 7da42d75
      Michael Munday authored
      Load and store instructions are atomic on s390x.
      
      Change-Id: I33c641a75954f4fbd301b11a467cb57872038880
      Reviewed-on: https://go-review.googlesource.com/20947Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      7da42d75
    • Alan Donovan's avatar
      go/types: make Identical(nil, T) == Identical(T, nil) · 95a895df
      Alan Donovan authored
      Fixes #15173
      
      Change-Id: I353756f7bc36db0d2b24d40c80771481b7b18f6b
      Reviewed-on: https://go-review.googlesource.com/21585Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      95a895df
    • Dave Cheney's avatar
      Revert "runtime: merge lfstack{Pack,Unpack} into one file" · 9cc9e95b
      Dave Cheney authored
      This broke solaris, which apparently does use the upper 17 bits of the address space.
      
      This reverts commit 3b02c5b1.
      
      Change-Id: Iedfe54abd0384960845468205f20191a97751c0b
      Reviewed-on: https://go-review.googlesource.com/21652Reviewed-by: 's avatarDave Cheney <dave@cheney.net>
      9cc9e95b
    • Alexandru Moșoi's avatar
      cmd/compile: fold CMPconst and SHR · 8448d3aa
      Alexandru Moșoi authored
      Fold the comparison when the SHR result is small.
      
      Useful for:
      - murmur mix like hashing where higher bits are desirable, i.e. hash = uint32(i * C) >> 18
      - integer log2 via DeBruijn sequence: http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn
      
      Change-Id: If70ae18cb86f4cc83ab6213f88ced03cc4986156
      Reviewed-on: https://go-review.googlesource.com/21514
      Run-TryBot: Alexandru Moșoi <alexandru@mosoi.ro>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarDavid Chase <drchase@google.com>
      8448d3aa
    • Richard Miller's avatar
      runtime/pprof: make TestBlockProfile less timing dependent · 121c434f
      Richard Miller authored
      The test for profiling of channel blocking is timing dependent,
      and in particular the blockSelectRecvAsync case can fail on a
      slow builder (plan9_arm) when many tests are run in parallel.
      The child goroutine sleeps for a fixed period so the parent
      can be observed to block in a select call reading from the
      child; but if the OS process running the parent goroutine is
      delayed long enough, the child may wake again before the
      parent has reached the blocking point.  By repeating the test
      three times, the likelihood of a blocking event is increased.
      
      Fixes #15096
      
      Change-Id: I2ddb9576a83408d06b51ded682bf8e71e53ce59e
      Reviewed-on: https://go-review.googlesource.com/21604Reviewed-by: 's avatarDmitry Vyukov <dvyukov@google.com>
      Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      121c434f
    • Dave Cheney's avatar
      runtime: merge lfstack{Pack,Unpack} into one file · 3b02c5b1
      Dave Cheney authored
      Merge the remaining lfstack{Pack,Unpack} implemetations into one file.
      
      unsafe.Sizeof(uintptr(0)) == 4 is a constant comparison so this branch
      folds away at compile time.
      
      Dmitry confirmed that the upper 17 bits of an address will be zero for a
      user mode pointer, so there is no need to sign extend on amd64 during
      unpack, so we can reuse the same implementation as all othe 64 bit
      archs.
      
      Change-Id: I99f589416d8b181ccde5364c9c2e78e4a5efc7f1
      Reviewed-on: https://go-review.googlesource.com/21597
      Run-TryBot: Dave Cheney <dave@cheney.net>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarMinux Ma <minux@golang.org>
      3b02c5b1
    • Matthew Dempsky's avatar
      cmd/link/internal/amd64: remove empty source file · 438ce713
      Matthew Dempsky authored
      Change-Id: I2da012ed996c669db513a462f014c6f3ffa396ee
      Reviewed-on: https://go-review.googlesource.com/21646Reviewed-by: 's avatarMikio Hara <mikioh.mikioh@gmail.com>
      438ce713
    • Matthew Dempsky's avatar
      cmd: extract obj's Biobuf code into new bio package · 4b7e36cd
      Matthew Dempsky authored
      API could still be made more Go-ey.
      
      Updates #15165.
      
      Change-Id: I514ffceffa43c293ae5d7e5f1e9193fda0098865
      Reviewed-on: https://go-review.googlesource.com/21644Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      4b7e36cd
    • Matthew Dempsky's avatar
      cmd/internal/sys: change ArchFamily constants to iotas · b17b9530
      Matthew Dempsky authored
      RIP architecture characters.
      
      Change-Id: I36f53afdc311b14b9459ff3821bd6df54a057ded
      Reviewed-on: https://go-review.googlesource.com/21628Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: 's avatarDave Cheney <dave@cheney.net>
      b17b9530
    • Matthew Dempsky's avatar
      cmd/link: remove dependency on sys.ArchFamily values · 22ef687d
      Matthew Dempsky authored
      Change-Id: I858054b72847f4f27a1ebbdaff82820a28c03743
      Reviewed-on: https://go-review.googlesource.com/21627Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      22ef687d
    • Matthew Dempsky's avatar
      cmd/compile, cmd/link: eliminate uses of ArchFamily in error messages · d481ffc1
      Matthew Dempsky authored
      Two of these error messages are already dead code: cmd/compile.main
      and cmd/link.main already switch on $GOARCH, ensuring it must be a
      prefix of the sys.Arch.Family.
      
      The error message about uncompiled Go source files can be just be
      simplified: anyone who's manually constructing Go object file archives
      probably knows what tool to use to compile Go source files.
      
      Change-Id: Ia4a67c0a1d1158379c127c91e909226d3367f3c2
      Reviewed-on: https://go-review.googlesource.com/21626
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      d481ffc1
    • Matthew Dempsky's avatar
      cmd: add new common architecture representation · c6e11fe0
      Matthew Dempsky authored
      Information about CPU architectures (e.g., name, family, byte
      ordering, pointer and register size) is currently redundantly
      scattered around the source tree. Instead consolidate the basic
      information into a single new package cmd/internal/sys.
      
      Also, introduce new sys.I386, sys.AMD64, etc. names for the constants
      '8', '6', etc. and replace most uses of the latter. The notable
      exceptions are a couple of error messages that still refer to the old
      char-based toolchain names and function reltype in cmd/link.
      
      Passes toolstash/buildall.
      
      Change-Id: I8a6f0cbd49577ec1672a98addebc45f767e36461
      Reviewed-on: https://go-review.googlesource.com/21623Reviewed-by: 's avatarMichael Hudson-Doyle <michael.hudson@canonical.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      c6e11fe0
    • Michael Hudson-Doyle's avatar
      runtime: clamp OS-reported number of processors to _MaxGomaxprocs · 31cf1c17
      Michael Hudson-Doyle authored
      So that all Go processes do not die on startup on a system with >256 CPUs.
      
      I tested this by hacking osinit to set ncpu to 1000.
      
      Updates #15131
      
      Change-Id: I52e061a0de97be41d684dd8b748fa9087d6f1aef
      Reviewed-on: https://go-review.googlesource.com/21599Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      31cf1c17
  2. 06 Apr, 2016 25 commits