1. 19 Oct, 2015 2 commits
  2. 18 Oct, 2015 2 commits
    • Keith Randall's avatar
      [dev.ssa] cmd/compile: Reuse stack slots for spill locations · 366dcc45
      Keith Randall authored
      For each type, maintain a list of stack slots used to spill
      SSA values to the stack.  Reuse those stack slots for noninterfering
      spills.
      
      Lowers frame sizes.  As an example, runtime.mSpan_Sweep goes from
      584 bytes to 392 bytes.  heapBitsSetType goes from 576 bytes to 152 bytes.
      
      Change-Id: I0e9afe80c2fd84aff9eb368318685de293c363d0
      Reviewed-on: https://go-review.googlesource.com/16022Reviewed-by: 's avatarDavid Chase <drchase@google.com>
      366dcc45
    • David Chase's avatar
      [dev.ssa] cmd/compile: fill remaining SSA gaps · 57670ad8
      David Chase authored
      Changed racewalk/race detector to use FP in a more
      sensible way.
      
      Relaxed checks for CONVNOP when race detecting.
      
      Modified tighten to ensure that GetClosurePtr cannot float
      out of entry block (turns out this cannot be relaxed, DX is
      sometimes stomped by other code accompanying race detection).
      
      Added case for addr(CONVNOP)
      
      Modified addr to take "bounded" flag to suppress nilchecks
      where it is set (usually, by race detector).
      
      Cannot leave unimplemented-complainer enabled because it
      turns out we are optimistically running SSA on every platform.
      
      Change-Id: Ife021654ee4065b3ffac62326d09b4b317b9f2e0
      Reviewed-on: https://go-review.googlesource.com/15710Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      57670ad8
  3. 14 Oct, 2015 1 commit
  4. 09 Oct, 2015 2 commits
  5. 08 Oct, 2015 2 commits
  6. 05 Oct, 2015 1 commit
    • Keith Randall's avatar
      [dev.ssa] cmd/compile: Eval append args after growslice · 9aba7e76
      Keith Randall authored
      For appending large types, we want to evaluate the
      values being appended after the growslice call, not before.
      Evaluating them before leads to phi operations on large types
      which confuses the lowering pass.
      
      The order pass has already removed any side-effects from the
      values being appended, so it doesn't matter if we do this
      last eval before or after the growslice call.
      
      This change fixes a bunch (but not all) of our failed lowerings.
      
      Change-Id: I7c697d4d5275d71b7ef4677b830fd86c52ba03a4
      Reviewed-on: https://go-review.googlesource.com/15430Reviewed-by: 's avatarDavid Chase <drchase@google.com>
      Run-TryBot: David Chase <drchase@google.com>
      9aba7e76
  7. 23 Sep, 2015 1 commit
  8. 22 Sep, 2015 1 commit
    • David Chase's avatar
      [dev.ssa] cmd/compile: addressed vars and closures · 956f3199
      David Chase authored
      Cleaned up first-block-in-function code.
      Added cases for |PHEAP for PPARAM and PAUTO.
      Made PPARAMOUT act more like PAUTO for purposes
      of address generation and vardef placement.
      Added cases for OCLOSUREVAR and Ops for getting closure
      pointer.  Closure ops are scheduled at top of entry block
      to capture DX.
      
      Wrote test that seems to show proper behavior for addressed
      parameters, locals, and returns.
      
      Change-Id: Iee93ebf9e3d9f74cfb4d1c1da8038eb278d8a857
      Reviewed-on: https://go-review.googlesource.com/14650Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      Run-TryBot: David Chase <drchase@google.com>
      956f3199
  9. 21 Sep, 2015 2 commits
  10. 20 Sep, 2015 2 commits
  11. 19 Sep, 2015 2 commits
  12. 17 Sep, 2015 4 commits
  13. 16 Sep, 2015 2 commits
  14. 15 Sep, 2015 2 commits
  15. 14 Sep, 2015 3 commits
  16. 12 Sep, 2015 4 commits
  17. 11 Sep, 2015 4 commits
  18. 10 Sep, 2015 3 commits