1. 22 Feb, 2016 1 commit
  2. 09 Feb, 2016 1 commit
  3. 06 Feb, 2016 1 commit
  4. 02 Feb, 2016 1 commit
  5. 29 Jan, 2016 1 commit
  6. 20 Jan, 2016 2 commits
  7. 11 Nov, 2015 1 commit
  8. 10 Nov, 2015 1 commit
  9. 03 Nov, 2015 2 commits
  10. 25 Oct, 2015 1 commit
  11. 23 Oct, 2015 1 commit
    • David Chase's avatar
      [dev.ssa] cmd/compile: enhance SSA filtering, add OpConvert · e99dd520
      David Chase authored
      Modified GOSSA{HASH.PKG} environment variable filters to
      make it easier to make/run with all SSA for testing.
      Disable attempts at SSA for architectures that are not
      amd64 (avoid spurious errors/unimplementeds.)
      
      Removed easy out for unimplemented features.
      
      Add convert op for proper liveness in presence of uintptr
      to/from unsafe.Pointer conversions.
      
      Tweaked stack sizes to get a pass on windows;
      1024 instead 768, was observed to pass at least once.
      
      Change-Id: Ida3800afcda67d529e3b1cf48ca4a3f0fa48b2c5
      Reviewed-on: https://go-review.googlesource.com/16201
      
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      Run-TryBot: David Chase <drchase@google.com>
      e99dd520
  12. 20 Oct, 2015 1 commit
  13. 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/14650
      
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      Run-TryBot: David Chase <drchase@google.com>
      956f3199
  14. 21 Sep, 2015 1 commit
  15. 17 Sep, 2015 1 commit
  16. 16 Sep, 2015 1 commit
  17. 12 Sep, 2015 1 commit
  18. 11 Sep, 2015 1 commit
    • Keith Randall's avatar
      [dev.ssa] cmd/compile/internal/ssa: simplify how exit blocks are used · f5c53e0d
      Keith Randall authored
      Move to implicit (mostly) instead of explicit exit blocks.
      RET and RETJMP have no outgoing edges - they implicitly exit.
      CALL only has one outgoing edge, as its exception edge is
      implicit as well.
      Exit blocks are only used for unconditionally panicking code,
      like the failed branches of nil and bounds checks.
      
      There may now be more than one exit block.  No merges happen
      at exit blocks.
      
      The only downside is it is harder to find all the places code
      can exit the method.  See the reverse dominator code for an
      example.
      
      Change-Id: I42e2fd809a4bf81301ab993e29ad9f203ce48eb0
      Reviewed-on: https://go-review.googlesource.com/14462
      
      Reviewed-by: default avatarJosh Bleecher Snyder <josharian@gmail.com>
      f5c53e0d
  19. 09 Sep, 2015 2 commits
  20. 07 Sep, 2015 1 commit
  21. 06 Sep, 2015 1 commit
  22. 05 Sep, 2015 2 commits
  23. 03 Sep, 2015 1 commit
  24. 01 Sep, 2015 2 commits
    • David Chase's avatar
      [dev.ssa] cmd/compile: add complex arithmetic · 3a9d0ac3
      David Chase authored
      Still to do:
      details, more testing corner cases. (e.g. negative zero)
      Includes small cleanups for previous CL.
      
      Note: complex division is currently done in the runtime,
      so the division code here is apparently not yet necessary
      and also not tested.  Seems likely better to open code
      division and expose the widening/narrowing to optimization.
      
      Complex64 multiplication and division is done in wide
      format to avoid cancellation errors; for division, this
      also happens to be compatible with pre-SSA practice
      (which uses a single complex128 division function).
      
      It would-be-nice to widen for complex128 multiplication
      intermediates as well, but that is trickier to implement
      without a handy wider-precision format.
      
      Change-Id: I595a4300f68868fb7641852a54674c6b2b78855e
      Reviewed-on: https://go-review.googlesource.com/14028
      
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      3a9d0ac3
    • Keith Randall's avatar
      [dev.ssa] cmd/compile/internal/ssa: allow ops to have a default type · 65677cab
      Keith Randall authored
      Specifying types in rewrites for all subexpressions gets verbose
      quickly.  Allow opcodes to specify a default type which is used when
      none is supplied explicitly.
      
      Provide default types for a few easy opcodes.  There are probably more
      we can do, but this is a good start.
      
      Change-Id: Iedc2a1a423cc3e2d4472640433982f9aa76a9f18
      Reviewed-on: https://go-review.googlesource.com/14128
      
      Reviewed-by: default avatarJosh Bleecher Snyder <josharian@gmail.com>
      65677cab
  25. 29 Aug, 2015 1 commit
  26. 28 Aug, 2015 1 commit
  27. 25 Aug, 2015 4 commits
  28. 21 Aug, 2015 1 commit
  29. 20 Aug, 2015 1 commit
    • Keith Randall's avatar
      [dev.ssa] cmd/compile: add decompose pass · 9f954db1
      Keith Randall authored
      Decompose breaks compound objects up into pieces that can be
      operated on by the target architecture.  The decompose pass only
      does phi ops, the rest is done by the rewrite rules in generic.rules.
      
      Compound objects include strings,slices,interfaces,structs,arrays.
      
      Arrays aren't decomposed because of indexing (we could support
      constant indexes, but dynamic indexes can't be handled using SSA).
      Structs will come in a subsequent CL.
      
      TODO: after this pass we have lost the association between, e.g.,
      a string's pointer and its size.  It would be nice if we could keep
      that information around for debugging info somehow.
      
      Change-Id: I6379ab962a7beef62297d0f68c421f22aa0a0901
      Reviewed-on: https://go-review.googlesource.com/13683
      
      Reviewed-by: default avatarJosh Bleecher Snyder <josharian@gmail.com>
      9f954db1
  30. 19 Aug, 2015 2 commits
  31. 18 Aug, 2015 1 commit