1. 19 Mar, 2017 3 commits
    • Josh Bleecher Snyder's avatar
      cmd/compile: canonicalize empty interface types · 62947bed
      Josh Bleecher Snyder authored
      Mapping all empty interfaces onto the same Type
      allows better reuse of the ptrTo and sliceOf
      Type caches for *interface{} and []interface{}.
      
      This has little compiler performance impact now,
      but it will be helpful in the future,
      when we will eagerly populate some of those caches.
      
      Passes toolstash-check.
      
      Change-Id: I17daee599a129b0b2f5f3025c1be43d569d6782c
      Reviewed-on: https://go-review.googlesource.com/38344
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      62947bed
    • Josh Bleecher Snyder's avatar
      cmd/compile: add more types to ssa.Types · 872db799
      Josh Bleecher Snyder authored
      This reduces the number of calls back into the
      gc Type routines, which will help performance
      in a concurrent backend.
      It also reduces the number of callsites
      that must be considered in making the transition.
      
      Passes toolstash-check -all. No compiler performance changes.
      
      Updates #15756
      
      Change-Id: Ic7a8f1daac7e01a21658ae61ac118b2a70804117
      Reviewed-on: https://go-review.googlesource.com/38340
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      872db799
    • Josh Bleecher Snyder's avatar
      cmd/compile: separate ssa.Frontend and ssa.TypeSource · aea3aff6
      Josh Bleecher Snyder authored
      Prior to this CL, the ssa.Frontend field was responsible
      for providing types to the backend during compilation.
      However, the types needed by the backend are few and static.
      It makes more sense to use a struct for them
      and to hang that struct off the ssa.Config,
      which is the correct home for readonly data.
      Now that Types is a struct, we can clean up the names a bit as well.
      
      This has the added benefit of allowing early construction
      of all types needed by the backend.
      This will be useful for concurrent backend compilation.
      
      Passes toolstash-check -all. No compiler performance change.
      
      Updates #15756
      
      Change-Id: I021658c8cf2836d6a22bbc20cc828ac38c7da08a
      Reviewed-on: https://go-review.googlesource.com/38336Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      aea3aff6
  2. 18 Mar, 2017 4 commits
  3. 17 Mar, 2017 26 commits
  4. 16 Mar, 2017 7 commits