1. 27 Oct, 2016 4 commits
    • Josh Bleecher Snyder's avatar
      cmd/compile: use List instead of OKEY for OSLICE* · d6dbf3a0
      Josh Bleecher Snyder authored
      Performance changes are negligible, but that's expected.
      This is a part of a general effort to eliminate OKEY nodes.
      
      Passes toolstash -cmp.
      
      Updates #15350
      
      name       old alloc/op     new alloc/op     delta
      Template       40.6MB ± 0%      40.6MB ± 0%  -0.04%         (p=0.000 n=9+10)
      Unicode        33.4MB ± 0%      33.4MB ± 0%    ~           (p=0.853 n=10+10)
      GoTypes         120MB ± 0%       120MB ± 0%  -0.03%         (p=0.000 n=9+10)
      Compiler        470MB ± 0%       469MB ± 0%  -0.06%        (p=0.000 n=10+10)
      
      name       old allocs/op    new allocs/op    delta
      Template         404k ± 0%        404k ± 0%    ~           (p=0.165 n=10+10)
      Unicode          350k ± 0%        350k ± 0%    ~            (p=0.211 n=9+10)
      GoTypes         1.21M ± 0%       1.21M ± 0%    ~           (p=0.315 n=10+10)
      Compiler        4.35M ± 0%       4.35M ± 0%  -0.03%        (p=0.001 n=10+10)
      
      Change-Id: I17d547bf9568b1ee2514a7ffab930424617f995e
      Reviewed-on: https://go-review.googlesource.com/32213
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
      d6dbf3a0
    • Klaus Post's avatar
      compress/flate: make compression level 0 consistent · 461adfd8
      Klaus Post authored
      Tests for determinism was not working as intended since io.Copybuffer
      uses the io.WriterTo if available.
      
      This exposed that level 0 (no compression) changed output
      based on the number of writes and buffers given to the
      writer.
      
      Previously, Write would emit a new raw block (BTYPE=00) for
      every non-empty call to Write.
      
      This CL fixes it such that a raw block is only emitted upon
      the following conditions:
       	* A full window is obtained (every 65535 bytes)
       	* Flush is called
       	* Close is called
      
      Change-Id: I807f866d97e2db7820f11febab30a96266a6cbf1
      Reviewed-on: https://go-review.googlesource.com/31174
      Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarJoe Tsai <thebrokentoaster@gmail.com>
      461adfd8
    • Klaus Post's avatar
      compress/flate: level 1 (best speed) match across blocks · 2e196b15
      Klaus Post authored
      This change makes deflate level 1 (best speed) match across
      block boundaries. This comes at a small speed penalty,
      but improves compression on almost all output.
      
      Sample numbers on various content types:
      
      enwik9:            391052014 ->  382578469 bytes, 77.59 -> 74.28 MB/s
      adresser.001:       57269799 ->   47756095 bytes, 287.84 -> 357.86 MB/s
      10gb:             5233055166 -> 5198328382 bytes, 105.85 -> 96.99 MB/s
      rawstudio-mint14: 3972329211 -> 3927423364 bytes, 100.07 -> 94.22 MB/s
      sites:             165556800 ->  163178702 bytes, 72.31 -> 70.15 MB/s
      objectfiles:       115962472 ->  111649524 bytes, 132.60 -> 128.05 MB/s
      sharnd.out:        200015283 ->  200015283 bytes, 221.50 -> 218.83 MB/s
      
      Change-Id: I62a139e5c06976e803439a4268acede5139b8cfc
      Reviewed-on: https://go-review.googlesource.com/31640Reviewed-by: 's avatarJoe Tsai <thebrokentoaster@gmail.com>
      Reviewed-by: 's avatarNigel Tao <nigeltao@golang.org>
      2e196b15
    • Hiroshi Ioka's avatar
      cmd/compile/internal/gc: remove EscScope · f8a34443
      Hiroshi Ioka authored
      EscScope behaves like EscHeap in current code.
      There are no need to handle it specially.
      So remove it and use EscHeap instead.
      
      Change-Id: I910106fd147f00e5f4fd52c7dde05128141a5160
      Reviewed-on: https://go-review.googlesource.com/32130
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
      f8a34443
  2. 26 Oct, 2016 35 commits
  3. 25 Oct, 2016 1 commit
    • Matthew Dempsky's avatar
      cmd/compile: slightly regularize interface method types · d89b70d4
      Matthew Dempsky authored
      Use a single *struct{} type instance rather than reconstructing one
      for every declared/imported interface method. Minor allocations win:
      
      name       old alloc/op    new alloc/op    delta
      Template      41.8MB ± 0%     41.7MB ± 0%  -0.10%         (p=0.000 n=9+10)
      Unicode       34.2MB ± 0%     34.2MB ± 0%    ~           (p=0.971 n=10+10)
      GoTypes        123MB ± 0%      122MB ± 0%  -0.03%         (p=0.000 n=9+10)
      Compiler       495MB ± 0%      495MB ± 0%  -0.01%        (p=0.000 n=10+10)
      
      name       old allocs/op   new allocs/op   delta
      Template        409k ± 0%       408k ± 0%  -0.13%        (p=0.000 n=10+10)
      Unicode         354k ± 0%       354k ± 0%    ~           (p=0.516 n=10+10)
      GoTypes        1.22M ± 0%      1.22M ± 0%  -0.03%        (p=0.009 n=10+10)
      Compiler       4.43M ± 0%      4.43M ± 0%  -0.02%        (p=0.000 n=10+10)
      
      Change-Id: Id3a4ca3dd09112bb96ccc982b06c9e79f661d31f
      Reviewed-on: https://go-review.googlesource.com/32051Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      d89b70d4