1. 09 Apr, 2017 3 commits
  2. 08 Apr, 2017 4 commits
  3. 07 Apr, 2017 28 commits
  4. 06 Apr, 2017 5 commits
    • Matthew Dempsky's avatar
      cmd/compile/internal/gc: remove a bunch of uses of iterField · 385c13cf
      Matthew Dempsky authored
      Passes toolstash-check -all.
      
      Change-Id: I9fb91dd78dff149b5e1e1329d00855fd41f12523
      Reviewed-on: https://go-review.googlesource.com/39796
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJosh Bleecher Snyder <josharian@gmail.com>
      385c13cf
    • Matthew Dempsky's avatar
      cmd/compile/internal/gc: simplify export info · a680a85e
      Matthew Dempsky authored
      Followup to previous typenod CL. Changes export data format, but only
      the compiler-specific section, so no version bump.
      
      Change-Id: I0c21737141f3d257366b29b2a9211bc7217c39ee
      Reviewed-on: https://go-review.googlesource.com/39797
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      a680a85e
    • Matthew Dempsky's avatar
      cmd/compile/internal/gc: remove a bunch of uses of typenod · 2e1b42a8
      Matthew Dempsky authored
      Passes toolstash-check -all.
      
      Change-Id: Ic9eb0c52bedac185ab86cc62207f199d93700344
      Reviewed-on: https://go-review.googlesource.com/39795
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      2e1b42a8
    • Josh Bleecher Snyder's avatar
      cmd/compile: remove forceObjFileStability · 25fc842f
      Josh Bleecher Snyder authored
      The textual import/export format is ancient history.
      
      Change-Id: Iebe90bfd9bd3074eb191186d86e5f4286ce3b1f3
      Reviewed-on: https://go-review.googlesource.com/39850
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      25fc842f
    • Josh Bleecher Snyder's avatar
      cmd/compile: make typenamesym do less work · 91433eb5
      Josh Bleecher Snyder authored
      typenamesym is called from three places:
      typename, ngotype, and Type.Symbol.
      Only in typename do we actually need a Node.
      ngotype and Type.Symbol require only a Sym.
      And writing the newly created Node to
      Sym.Def is unsafe in a concurrent backend.
      Rather than use a mutex protect to Sym.Def,
      make typenamesym not touch Sym.Def.
      
      The assignment to Sym.Def was serving a second purpose,
      namely to prevent duplicate entries on signatlist.
      Preserve that functionality by switching signatlist to a map.
      This in turn requires that we sort signatlist
      when exporting it, to preserve reproducibility.
      
      We'd like to use Type.cmp for sorting,
      but that causes infinite recursion at the moment;
      see #19869.
      
      For now, use Type.LongString as the sort key,
      which is a complete description of the type.
      Type.LongString is relatively expensive,
      but we calculate it only once per type,
      and signatlist is generally fairly small,
      so the performance impact is minimal.
      
      Updates #15756
      
      name       old alloc/op    new alloc/op    delta
      Template      39.4MB ± 0%     39.4MB ± 0%    ~     (p=0.222 n=5+5)
      Unicode       29.8MB ± 0%     29.8MB ± 0%    ~     (p=0.151 n=5+5)
      GoTypes        113MB ± 0%      113MB ± 0%    ~     (p=0.095 n=5+5)
      SSA           1.25GB ± 0%     1.25GB ± 0%  +0.04%  (p=0.008 n=5+5)
      Flate         25.3MB ± 0%     25.4MB ± 0%    ~     (p=0.056 n=5+5)
      GoParser      31.8MB ± 0%     31.8MB ± 0%    ~     (p=0.310 n=5+5)
      Reflect       78.3MB ± 0%     78.3MB ± 0%    ~     (p=0.690 n=5+5)
      Tar           26.7MB ± 0%     26.7MB ± 0%    ~     (p=0.548 n=5+5)
      XML           42.2MB ± 0%     42.2MB ± 0%    ~     (p=0.222 n=5+5)
      
      name       old allocs/op   new allocs/op   delta
      Template        387k ± 0%       388k ± 0%    ~     (p=0.056 n=5+5)
      Unicode         320k ± 0%       321k ± 0%  +0.32%  (p=0.032 n=5+5)
      GoTypes        1.14M ± 0%      1.15M ± 0%    ~     (p=0.095 n=5+5)
      SSA            9.70M ± 0%      9.72M ± 0%  +0.18%  (p=0.008 n=5+5)
      Flate           234k ± 0%       235k ± 0%  +0.60%  (p=0.008 n=5+5)
      GoParser        317k ± 0%       317k ± 0%    ~     (p=1.000 n=5+5)
      Reflect         982k ± 0%       983k ± 0%    ~     (p=0.841 n=5+5)
      Tar             252k ± 1%       252k ± 0%    ~     (p=0.310 n=5+5)
      XML             393k ± 0%       392k ± 0%    ~     (p=0.548 n=5+5)
      
      Change-Id: I53a3b95d19cf1a7b7511a94fba896706addf84fb
      Reviewed-on: https://go-review.googlesource.com/39710
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      91433eb5