1. 12 Oct, 2016 18 commits
  2. 11 Oct, 2016 18 commits
  3. 10 Oct, 2016 4 commits
    • Russ Cox's avatar
      math/big: make division faster · 3a907282
      Russ Cox authored
      - Add new BenchmarkQuoRem.
      - Eliminate allocation in divLarge nat pool
      - Unroll mulAddVWW body 4x
      - Remove some redundant slice loads in divLarge
      
      name      old time/op  new time/op  delta
      QuoRem-8  2.18µs ± 1%  1.93µs ± 1%  -11.38%  (p=0.000 n=19+18)
      
      The starting point in the comparison here is Cherry's
      pending CL to turn mulWW and divWW into intrinsics.
      The optimizations in divLarge work best because all
      the function calls are gone. The effect of this CL is not
      as large if you don't assume Cherry's CL.
      
      Change-Id: Ia6138907489c5b9168497912e43705634e163b35
      Reviewed-on: https://go-review.googlesource.com/30613
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      3a907282
    • Cherry Zhang's avatar
      cmd/compile: remove some write barriers for stack writes · 68331750
      Cherry Zhang authored
      This, along with CL 30140, removes ~50% of stack write barriers
      mentioned in issue #17330. The remaining are most due to Phi and
      FwdRef, which is not resolved when building SSA. We might be
      able to do it at a later stage where Phi and Copy propagations
      are done, but matching an if-(store-store-call)+ sequence seems
      not very pleasant.
      
      Updates #17330.
      
      Change-Id: Iaa36c7b1f4c4fc3dc10a27018a3b0e261094cb21
      Reviewed-on: https://go-review.googlesource.com/30290
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      68331750
    • David Chase's avatar
      cmd/compile: PPC64, elide unnecessary sign extension · 2f0b8f88
      David Chase authored
      Inputs to store[BHW] and cmpW(U) need not be correct
      in more bits than are used by the instruction.
      
      Added a pattern tailored to what appears to be cgo boilerplate.
      Added a pattern (also seen in cgo boilerplate and hashing)
      to replace {EQ,NE}-CMP-ANDconst with {EQ-NE}-ANDCCconst.
      Added a pattern to clean up ANDconst shift distance inputs
      (this was seen in hashing).
      
      Simplify repeated and,or,xor.
      
      Fixes #17109.
      
      Change-Id: I68eac83e3e614d69ffe473a08953048c8b066d88
      Reviewed-on: https://go-review.googlesource.com/30455
      Run-TryBot: David Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      2f0b8f88
    • Tal Shprecher's avatar
      cmd/compile: avoid leak of dottype expression on double assignment form · 672e5794
      Tal Shprecher authored
      This is a followup to issue #13805. That change avoid leaks for types that
      don't have any pointers for the single assignment form of a dottype expression.
      This does the same for the double assignment form.
      
      Fixes #15796
      
      Change-Id: I27474cade0ff1f3025cb6392f47b87b33542bc0f
      Reviewed-on: https://go-review.googlesource.com/24906
      Run-TryBot: Michael Matloob <matloob@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      672e5794