1. 31 Aug, 2015 1 commit
  2. 29 Aug, 2015 4 commits
  3. 28 Aug, 2015 7 commits
  4. 27 Aug, 2015 2 commits
  5. 26 Aug, 2015 2 commits
  6. 25 Aug, 2015 16 commits
  7. 24 Aug, 2015 8 commits
    • Josh Bleecher Snyder's avatar
      [dev.ssa] cmd/compile: streamline unimplemented strings · 5844603f
      Josh Bleecher Snyder authored
      This aids in making sense of the aggregate set of work outstanding.
      Interest in the details of any particular implementation failure
      is better handled locally anyway.
      
      In my local tree, running make.bash after this CL yields:
      
       14.85%  1811 SSA unimplemented: unhandled expr SLICEARR
       13.84%  1687 SSA unimplemented: unhandled expr CALLINTER
       11.84%  1444 SSA unimplemented: unhandled stmt RETJMP
       10.24%  1249 SSA unimplemented: unhandled expr EFACE
        8.52%  1039 SSA unimplemented: unhandled expr SLICE
        4.92%   600 SSA unimplemented: local variable with class PAUTO,heap unimplemented
        4.90%   598 SSA unimplemented: unhandled expr SLICESTR
        3.91%   477 SSA unimplemented: local variable with class PFUNC unimplemented
        3.45%   421 SSA unimplemented: not lowered: IMake INTER PTR64 PTR64
        3.42%   417 SSA unimplemented: unhandled expr APPEND
        3.21%   391 SSA unimplemented: unhandled expr CLOSUREVAR
        3.06%   373 SSA unimplemented: unhandled stmt DEFER
        3.04%   371 SSA unimplemented: unhandled stmt AS2DOTTYPE
        1.61%   196 SSA unimplemented: unhandled expr DOTTYPE
        1.56%   190 SSA unimplemented: not lowered: Load STRUCT PTR64 mem
        0.79%    96 SSA unimplemented: not lowered: StringMake STRING PTR64 UINTPTR
        0.69%    84 SSA unimplemented: unhandled binary op NE FLOAT64
        0.53%    65 SSA unimplemented: unhandled expr STRUCTLIT
        0.50%    61 SSA unimplemented: not lowered: SliceMake ARRAY PTR64 UINTPTR UINTPTR
        0.45%    55 SSA unimplemented: zero for type float64 not implemented
        0.44%    54 SSA unimplemented: unhandled addr CLOSUREVAR
        0.38%    46 SSA unimplemented: unhandled binary op EQ FLOAT64
        0.35%    43 SSA unimplemented: unhandled binary op LT FLOAT64
        0.34%    42 SSA unimplemented: unhandled len(map)
        0.33%    40 SSA unimplemented: unhandled stmt FALL
        0.23%    28 SSA unimplemented: CONVNOP closure
        0.21%    25 SSA unimplemented: local variable with class PPARAM,heap unimplemented
        0.21%    25 SSA unimplemented: unhandled binary op GT FLOAT64
        0.18%    22 SSA unimplemented: unhandled OCONV FLOAT32 -> FLOAT64
        0.18%    22 SSA unimplemented: unhandled expr REAL
        0.16%    20 SSA unimplemented: unhandled stmt PROC
        0.16%    19 SSA unimplemented: unhandled closure arg
        0.15%    18 SSA unimplemented: unhandled OCONV INT64 -> FLOAT64
        0.12%    15 SSA unimplemented: unhandled expr CFUNC
        0.10%    12 SSA unimplemented: unhandled OCONV UINT64 -> FLOAT64
        0.09%    11 SSA unimplemented: unhandled OLITERAL 4
        0.09%    11 SSA unimplemented: unhandled expr IMAG
        0.07%     9 SSA unimplemented: unhandled binary op GE FLOAT64
        0.07%     9 SSA unimplemented: unhandled binary op MINUS FLOAT64
        0.06%     7 SSA unimplemented: unhandled OCONV FLOAT64 -> FLOAT32
        0.06%     7 SSA unimplemented: unhandled binary op NE FLOAT32
        0.06%     7 SSA unimplemented: variable address class 5 not implemented
        0.05%     6 SSA unimplemented: not lowered: Load COMPLEX128 PTR64 mem
        0.05%     6 SSA unimplemented: unhandled expr SLICE3ARR
        0.04%     5 SSA unimplemented: unhandled binary op LE FLOAT64
        0.03%     4 SSA unimplemented: unhandled OCONV UINTPTR -> FLOAT64
        0.03%     4 SSA unimplemented: unhandled binary op EQ COMPLEX128
        0.03%     4 SSA unimplemented: unhandled binary op EQ FLOAT32
        0.03%     4 SSA unimplemented: unhandled expr COMPLEX
        0.02%     3 SSA unimplemented: local variable with class PPARAMOUT,heap unimplemented
        0.02%     3 SSA unimplemented: not lowered: Load ARRAY PTR64 mem
        0.02%     3 SSA unimplemented: unhandled OCONV INT32 -> FLOAT64
        0.02%     3 SSA unimplemented: unhandled OCONV INT64 -> FLOAT32
        0.02%     3 SSA unimplemented: unhandled expr SLICE3
        0.02%     2 SSA unimplemented: unhandled OCONV COMPLEX64 -> COMPLEX128
        0.02%     2 SSA unimplemented: unhandled OCONV FLOAT64 -> INT64
        0.02%     2 SSA unimplemented: unhandled OCONV FLOAT64 -> UINT64
        0.02%     2 SSA unimplemented: unhandled OCONV INT -> FLOAT64
        0.02%     2 SSA unimplemented: unhandled OCONV UINT64 -> FLOAT32
        0.02%     2 SSA unimplemented: unhandled binary op EQ COMPLEX64
        0.02%     2 SSA unimplemented: unhandled binary op MINUS FLOAT32
        0.02%     2 SSA unimplemented: zero for type complex128 not implemented
        0.02%     2 SSA unimplemented: zero for type complex64 not implemented
        0.02%     2 SSA unimplemented: zero for type float32 not implemented
        0.01%     1 SSA unimplemented: not lowered: EqFat BOOL INTER INTER
        0.01%     1 SSA unimplemented: not lowered: Store mem UINTPTR COMPLEX128 mem
        0.01%     1 SSA unimplemented: unhandled OCONV UINT32 -> FLOAT64
        0.01%     1 SSA unimplemented: unhandled cap(chan)
        0.01%     1 SSA unimplemented: unhandled expr ARRAYLIT
        0.01%     1 SSA unimplemented: unhandled expr PLUS
        0.01%     1 SSA unimplemented: unhandled stmt CHECKNIL
      
      Change-Id: I43474fe6d6ec22a9f57239090136f6e97eebfdf2
      Reviewed-on: https://go-review.googlesource.com/13848Reviewed-by: default avatarKeith Randall <khr@golang.org>
      5844603f
    • Josh Bleecher Snyder's avatar
      [dev.ssa] cmd/compile: support spilling and loading flags · 9f8f8c27
      Josh Bleecher Snyder authored
      This CL takes a simple approach to spilling and loading flags.
      We never spill. When a load is needed, we recalculate,
      loading the arguments as needed.
      
      This is simple and architecture-independent.
      It is not very efficient, but as of this CL,
      there are fewer than 200 flag spills during make.bash.
      
      This was tested by manually reverting CLs 13813 and 13843,
      causing SETcc, MOV, and LEA instructions to clobber flags,
      which dramatically increases the number of flags spills.
      With that done, all stdlib tests that used to pass
      still pass.
      
      For future reference, here are some other, more efficient
      amd64-only schemes that we could adapt in the future if needed.
      
      (1) Spill exactly the flags needed.
      
      For example, if we know that the flags will be needed
      by a SETcc or Jcc op later, we could use SETcc to
      extract just the relevant flag. When needed,
      we could use TESTB and change the op to JNE/SETNE.
      (Alternatively, we could leave the op unaltered
      and prepare an appropriate CMPB instruction
      to produce the desired flag.)
      
      However, this requires separate handling for every
      instruction that uses the flags register,
      including (say) SBBQcarrymask.
      
      We could enable this on an ad hoc basis for common cases
      and fall back to recalculation for other cases.
      
      (2) Spill all flags with PUSHF and POPF
      
      This modifies SP, which the runtime won't like.
      It also requires coordination with stackalloc to
      make sure that we have a stack slot ready for use.
      
      (3) Spill almost all flags with LAHF, SETO, and SAHF
      
      See http://blog.freearrow.com/archives/396
      for details. This would handle all the flags we currently
      use. However, LAHF and SAHF are not universally available
      and it requires arranging for AX to be free.
      
      Change-Id: Ie36600fd8e807ef2bee83e2e2ae3685112a7f276
      Reviewed-on: https://go-review.googlesource.com/13844Reviewed-by: default avatarKeith Randall <khr@golang.org>
      9f8f8c27
    • Josh Bleecher Snyder's avatar
      [dev.ssa] cmd/compile: mark LEA and MOV instructions as not clobbering flags · f3171994
      Josh Bleecher Snyder authored
      This further reduces the number of flags spills
      during make.bash by about 50%.
      
      Note that GetG is implemented by one or two MOVs,
      which is why it does not clobber flags.
      
      Change-Id: I6fede8c027b7dc340e00d1e15df1b87bf2b2d9ec
      Reviewed-on: https://go-review.googlesource.com/13843Reviewed-by: default avatarKeith Randall <khr@golang.org>
      f3171994
    • Josh Bleecher Snyder's avatar
      [dev.ssa] cmd/compile: make "*Value".String more robust · 220e7054
      Josh Bleecher Snyder authored
      Change-Id: I4ae38440a33574421c9e3e350701e86e8a224b92
      Reviewed-on: https://go-review.googlesource.com/13842Reviewed-by: default avatarTodd Neal <todd@tneal.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      220e7054
    • Joe Tsai's avatar
      hash/fnv: fix wiki url · 8e2d0e1c
      Joe Tsai authored
      The URL is shown on go docs and is an eye-sore.
      
      For go1.6.
      
      Change-Id: I8b8ea3751200d06ed36acfe22f47ebb38107f8db
      Reviewed-on: https://go-review.googlesource.com/13282Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      8e2d0e1c
    • Dave Cheney's avatar
      runtime: check pointer equality in arm cmpbody · 1135b9d6
      Dave Cheney authored
      Updates #11336
      
      Follow the lead of amd64 do a pointer equality check
      before comparing string/byte contents on arm.
      
      BenchmarkCompareBytesEqual-4               208             211             +1.44%
      BenchmarkCompareBytesToNil-4               83.6            81.8            -2.15%
      BenchmarkCompareBytesEmpty-4               80.2            75.2            -6.23%
      BenchmarkCompareBytesIdentical-4           208             75.2            -63.85%
      BenchmarkCompareBytesSameLength-4          126             128             +1.59%
      BenchmarkCompareBytesDifferentLength-4     128             130             +1.56%
      BenchmarkCompareBytesBigUnaligned-4        14192804        14060971        -0.93%
      BenchmarkCompareBytesBig-4                 12277313        12128193        -1.21%
      BenchmarkCompareBytesBigIdentical-4        9385046         78.5            -100.00%
      
      Change-Id: I5b24620018688c5fe04b6ff6743a24c4ce225788
      Reviewed-on: https://go-review.googlesource.com/13881Reviewed-by: default avatarKeith Randall <khr@golang.org>
      1135b9d6
    • Rob Pike's avatar
      fmt: in Scanf, %c can scan a space, so don't skip spaces at %c · b1eec186
      Rob Pike authored
      In short, %c should just give you the next rune, period.
      Apparently this is the design. I use the term loosely.
      
      Fixes #12275
      
      Change-Id: I6f30bed442c0e88eac2244d465c7d151b29cf393
      Reviewed-on: https://go-review.googlesource.com/13821Reviewed-by: default avatarAndrew Gerrand <adg@golang.org>
      b1eec186
    • Andrew Gerrand's avatar
      doc: remove mention of defunct golang-bugs mailing list · 47bdda64
      Andrew Gerrand authored
      Fixes #12299
      
      Change-Id: Id7b73d2935c9f7c0952f833613973ef455d02b0d
      Reviewed-on: https://go-review.googlesource.com/13858Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      47bdda64