1. 01 Sep, 2019 6 commits
  2. 31 Aug, 2019 9 commits
  3. 30 Aug, 2019 13 commits
  4. 29 Aug, 2019 12 commits
    • Robert Griesemer's avatar
      cmd/compile: avoid follow-on errors for literals with syntax errors · 5411953d
      Robert Griesemer authored
      - only convert literal strings if there were no syntax errors
        (some of the conversion routines exit if there is an error)
      - mark nodes for literals with syntax errors to avoid follow-on
        errors
      - don't attempt to import packages whose path had syntax errors
      
      Fixes #32133.
      
      Change-Id: I1803ad48c65abfecf6f48ddff1e27eded5e282c5
      Reviewed-on: https://go-review.googlesource.com/c/go/+/192437Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      5411953d
    • Robert Griesemer's avatar
      cmd/compile/internal/syntax: add BasicLit.Bad field for lexical errors · 117400ec
      Robert Griesemer authored
      The new (internal) field scanner.bad indicates whether a syntax error
      occurred while scanning a literal; the corresponding scanner.lit
      string may be syntactically incorrect in that case. Store the value
      of scanner.bad together with the scanner.lit in BasicLit.
      
      Clean up error handling so that all syntactic errors use one of the
      scanner's error reporting methods which also set scanner.bad. Make
      use of the new field in a few places where we used to track a prior
      error separately.
      
      Preliminary step towards fixing #32133 in a comprehensive manner.
      
      Change-Id: I4d79ad6e3b50632dd5fb3fc32ca3df0598ee77b4
      Reviewed-on: https://go-review.googlesource.com/c/go/+/192278Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      117400ec
    • Keith Randall's avatar
      bytes/hash: add hashing package for bytes and strings · bf36219c
      Keith Randall authored
      Fixes #28322
      
      R=go1.14
      
      RELNOTE=yes
      
      Change-Id: Ic29f8b587c8c77472260836a5c3e13edaded13fa
      Reviewed-on: https://go-review.googlesource.com/c/go/+/186877Reviewed-by: default avatarAlan Donovan <adonovan@google.com>
      bf36219c
    • Keith Randall's avatar
      runtime: switch default order of hashing algorithms · fbfb41e6
      Keith Randall authored
      Currently the standard hasher is memhash, which checks whether aes
      instructions are available, and if so redirects to aeshash.
      
      With this CL, we call aeshash directly, which then redirects to the
      fallback hash if aes instructions are not available.
      
      This reduces the overhead for the hash function in the common case,
      as it requires just one call instead of two. On architectures which
      have no assembly hasher, it's a single jump slower.
      
      Thanks to Martin for this idea.
      
      name         old time/op  new time/op  delta
      BigKeyMap-4  22.6ns ± 1%  21.1ns ± 2%  -6.55%  (p=0.000 n=9+10)
      
      Change-Id: Ib7ca77b63d28222eb0189bc3d7130531949d853c
      Reviewed-on: https://go-review.googlesource.com/c/go/+/190998Reviewed-by: default avatarMartin Möhrmann <moehrmann@google.com>
      fbfb41e6
    • Josh Bleecher Snyder's avatar
      cmd/compile: add more Neg/Com optimizations · 9675f819
      Josh Bleecher Snyder authored
      This is a grab-bag of minor optimizations.
      
      While we're here, document the c != -(1<<31)
      constraints better (#31888).
      
      file    before    after     Δ       %
      go      14669924  14665828  -4096   -0.028%
      asm     4867088   4858896   -8192   -0.168%
      compile 23988320  23984224  -4096   -0.017%
      cover   5210856   5206760   -4096   -0.079%
      link    6084376   6080280   -4096   -0.067%
      total   132181084 132156508 -24576  -0.019%
      
      file                                                      before    after     Δ       %
      archive/tar.a                                             516708    516702    -6      -0.001%
      bufio.a                                                   182200    181974    -226    -0.124%
      bytes.a                                                   217624    216890    -734    -0.337%
      cmd/compile/internal/gc.a                                 8865412   8865228   -184    -0.002%
      cmd/compile/internal/ssa.a                                29921002  29933976  +12974  +0.043%
      cmd/go/internal/modfetch/codehost.a                       530602    530430    -172    -0.032%
      cmd/go/internal/modfetch.a                                679664    679578    -86     -0.013%
      cmd/go/internal/modfile.a                                 411102    410928    -174    -0.042%
      cmd/go/internal/test.a                                    315218    315126    -92     -0.029%
      cmd/go/internal/tlog.a                                    183242    183256    +14     +0.008%
      cmd/go/internal/txtar.a                                   23148     23060     -88     -0.380%
      cmd/internal/bio.a                                        132064    132060    -4      -0.003%
      cmd/internal/buildid.a                                    107174    107172    -2      -0.002%
      cmd/internal/edit.a                                       33208     33354     +146    +0.440%
      cmd/internal/obj/arm.a                                    416488    416432    -56     -0.013%
      cmd/internal/obj/arm64.a                                  2772626   2772622   -4      -0.000%
      cmd/internal/obj/x86.a                                    923186    923114    -72     -0.008%
      cmd/internal/obj.a                                        679834    679836    +2      +0.000%
      cmd/internal/objfile.a                                    358374    358372    -2      -0.001%
      cmd/internal/test2json.a                                  67482     67434     -48     -0.071%
      cmd/link/internal/ld.a                                    2836280   2836110   -170    -0.006%
      cmd/link/internal/loadpe.a                                148234    147736    -498    -0.336%
      cmd/link/internal/objfile.a                               144534    144434    -100    -0.069%
      cmd/link/internal/ppc64.a                                 170876    170382    -494    -0.289%
      cmd/vendor/github.com/google/pprof/internal/elfexec.a     49896     49892     -4      -0.008%
      cmd/vendor/github.com/google/pprof/internal/graph.a       437478    437404    -74     -0.017%
      cmd/vendor/github.com/google/pprof/profile.a              902040    902044    +4      +0.000%
      cmd/vendor/github.com/ianlancetaylor/demangle.a           1217856   1217854   -2      -0.000%
      cmd/vendor/golang.org/x/arch/x86/x86asm.a                 561332    560684    -648    -0.115%
      cmd/vendor/golang.org/x/crypto/ssh/terminal.a             153788    153784    -4      -0.003%
      cmd/vendor/golang.org/x/sys/unix.a                        1043894   1043814   -80     -0.008%
      cmd/vendor/golang.org/x/tools/go/analysis/passes/printf.a 288458    288414    -44     -0.015%
      compress/flate.a                                          369024    368132    -892    -0.242%
      crypto/aes.a                                              109058    108968    -90     -0.083%
      crypto/cipher.a                                           150410    150544    +134    +0.089%
      crypto/elliptic.a                                         323572    323758    +186    +0.057%
      crypto/md5.a                                              50868     50788     -80     -0.157%
      crypto/rsa.a                                              195292    195214    -78     -0.040%
      crypto/sha1.a                                             70936     70858     -78     -0.110%
      crypto/sha256.a                                           75316     75236     -80     -0.106%
      crypto/sha512.a                                           84846     84768     -78     -0.092%
      crypto/subtle.a                                           6520      6514      -6      -0.092%
      crypto/tls.a                                              1654916   1654852   -64     -0.004%
      crypto/x509.a                                             888674    888638    -36     -0.004%
      database/sql.a                                            730280    730198    -82     -0.011%
      debug/gosym.a                                             184936    184862    -74     -0.040%
      debug/macho.a                                             272138    272136    -2      -0.001%
      debug/plan9obj.a                                          78444     78368     -76     -0.097%
      encoding/base64.a                                         82126     81882     -244    -0.297%
      encoding/binary.a                                         187196    187150    -46     -0.025%
      encoding/gob.a                                            897868    897870    +2      +0.000%
      encoding/json.a                                           659934    659832    -102    -0.015%
      encoding/pem.a                                            59138     58870     -268    -0.453%
      encoding/xml.a                                            694054    693300    -754    -0.109%
      fmt.a                                                     484518    484196    -322    -0.066%
      go/format.a                                               33962     33994     +32     +0.094%
      go/printer.a                                              437132    437134    +2      +0.000%
      go/scanner.a                                              141774    141772    -2      -0.001%
      go/token.a                                                125130    125126    -4      -0.003%
      go/types.a                                                2192086   2191994   -92     -0.004%
      html/template.a                                           599038    598770    -268    -0.045%
      html.a                                                    184842    184710    -132    -0.071%
      image/draw.a                                              129592    129238    -354    -0.273%
      image/gif.a                                               171824    171716    -108    -0.063%
      image/internal/imageutil.a                                20282     19272     -1010   -4.980%
      image/jpeg.a                                              275608    275114    -494    -0.179%
      image/png.a                                               343416    343620    +204    +0.059%
      image.a                                                   362244    362210    -34     -0.009%
      index/suffixarray.a                                       113040    112954    -86     -0.076%
      internal/trace.a                                          518972    518838    -134    -0.026%
      math/big.a                                                1012670   1012354   -316    -0.031%
      math.a                                                    219338    219334    -4      -0.002%
      mime/multipart.a                                          178854    178502    -352    -0.197%
      mime/quotedprintable.a                                    49226     48936     -290    -0.589%
      net/http/cgi.a                                            172328    172324    -4      -0.002%
      net/http.a                                                4000180   3999732   -448    -0.011%
      net.a                                                     1858330   1858252   -78     -0.004%
      path/filepath.a                                           107496    107498    +2      +0.002%
      reflect.a                                                 1439776   1439994   +218    +0.015%
      regexp/syntax.a                                           459430    459432    +2      +0.000%
      regexp.a                                                  416394    416400    +6      +0.001%
      runtime/debug.a                                           42106     42100     -6      -0.014%
      runtime/pprof/internal/profile.a                          608718    608720    +2      +0.000%
      runtime/pprof.a                                           355474    355476    +2      +0.001%
      runtime.a                                                 3555748   3555796   +48     +0.001%
      strconv.a                                                 294432    294410    -22     -0.007%
      strings.a                                                 292148    292090    -58     -0.020%
      syscall.a                                                 859682    859470    -212    -0.025%
      text/tabwriter.a                                          65614     65148     -466    -0.710%
      vendor/golang.org/x/crypto/chacha20poly1305.a             126736    126728    -8      -0.006%
      vendor/golang.org/x/crypto/cryptobyte.a                   269112    269114    +2      +0.001%
      vendor/golang.org/x/crypto/internal/chacha20.a            61842     61262     -580    -0.938%
      vendor/golang.org/x/crypto/poly1305.a                     47410     47404     -6      -0.013%
      vendor/golang.org/x/net/dns/dnsmessage.a                  628700    628012    -688    -0.109%
      vendor/golang.org/x/net/idna.a                            237678    237826    +148    +0.062%
      vendor/golang.org/x/net/route.a                           187852    187458    -394    -0.210%
      vendor/golang.org/x/sys/unix.a                            1022426   1022348   -78     -0.008%
      vendor/golang.org/x/text/transform.a                      117954    118104    +150    +0.127%
      vendor/golang.org/x/text/unicode/bidi.a                   291398    291404    +6      +0.002%
      vendor/golang.org/x/text/unicode/norm.a                   534640    534540    -100    -0.019%
      total                                                     128945190 128945128 -62     -0.000%
      
      Change-Id: I346dc31356d5ef7774b824cf202169610bd26432
      Reviewed-on: https://go-review.googlesource.com/c/go/+/175778
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      9675f819
    • Josh Bleecher Snyder's avatar
      cmd/compile: simplify postorder · 75198b9a
      Josh Bleecher Snyder authored
      Use a bool instead of markKind;
      it doesn't save space, but the semantics are more obvious.
      Move type markKind closer to its only remaining use.
      
      Change-Id: I9945a7baaeb764295a2709f83120ce3a82fa3beb
      Reviewed-on: https://go-review.googlesource.com/c/go/+/177880
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      75198b9a
    • Josh Bleecher Snyder's avatar
      cmd/compile: optimize more pointer comparisons · b8cbcaca
      Josh Bleecher Snyder authored
      The existing pointer comparison optimizations
      don't include pointer arithmetic. Add them.
      
      These rules trigger a few times in std cmd, while compiling:
      
      time.Duration.String
      cmd/go/internal/tlog.NodeHash
      crypto/tls.ticketKeyFromBytes (3 times)
      crypto/elliptic.(*p256Point).p256ScalarMult (15 times!)
      crypto/elliptic.initTable
      
      These weird comparisons occur when using the copy builtin,
      which does a pointer comparison between src and dst.
      
      This also happens to fix #32454, by optimizing enough
      early on that all values can be eliminated.
      
      Fixes #32454
      
      Change-Id: I799d45743350bddd15a295dc1e12f8d03c11d1c6
      Reviewed-on: https://go-review.googlesource.com/c/go/+/180940
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      b8cbcaca
    • Josh Bleecher Snyder's avatar
      cmd/compile: remove redundant rules · abda0a6a
      Josh Bleecher Snyder authored
      EqPtr and NeqPtr are marked as commutative,
      so the transformations for rules are already
      generated by the preceding two lines.
      
      Change-Id: Ibecba5c8e54d9df00c84e1dae7e5d8cb53eeff43
      Reviewed-on: https://go-review.googlesource.com/c/go/+/180939
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      abda0a6a
    • Cuong Manh Le's avatar
      cmd/compile: emit error message for broken type · 97bc039c
      Cuong Manh Le authored
      The original report in #5172 was that cmd/compile was generating bogus
      follow-on error messages when typechecking a struct failed. Instead of
      fixing those follow-on error messages, golang.org/cl/9614044 suppress all
      follow-on error messages after struct typecheck fails. We should
      continue emitting error messages instead.
      
      While at it, also add the test case for original report.
      
      Fixes #33947
      
      Change-Id: I4a5c6878977128abccd704350a12df743631c7bf
      Reviewed-on: https://go-review.googlesource.com/c/go/+/191944
      Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      97bc039c
    • LE Manh Cuong's avatar
      cmd/compile: fix internal error on complex comparison · 24c6dd98
      LE Manh Cuong authored
      Complex type is the only TIDEAL that lack of support for all comparison
      operators. When rewriting constant comparison into literal node, that
      missing cause compiler raise an internal error.
      
      Checking the operator is available for complex type before that fix the
      problem.
      
      We can make this check works more generally if there's more type lack of
      supporting all comparison operators added, but it does not seem to be
      happened, so just check explicitly for complex only.
      
      Fixes #32723
      
      Change-Id: I4938b1bdcbcdae9a9d87436024984bd2ab12995e
      Reviewed-on: https://go-review.googlesource.com/c/go/+/183459
      Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      24c6dd98
    • LE Manh Cuong's avatar
      cmd/compile: do not set n.Type.Sym in typecheckdeftype · b136267b
      LE Manh Cuong authored
      typecheckdef calls typecheckdeftype, which will also set n.Type.Sym,
      causing duplicated work. So do not set n.Type.Sym in typecheckdeftype to
      prevent this, and also keep populating n.Type info in one place make
      more sense.
      
      Change-Id: I62671babd750f9d5d0bbfcf8d7eecd2cc314c955
      Reviewed-on: https://go-review.googlesource.com/c/go/+/179579
      Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      b136267b
    • Josh Bleecher Snyder's avatar
      cmd/compile: handle infinite loops in shortcircuit pass · 2393d161
      Josh Bleecher Snyder authored
      The newly upgraded shortcircuit pass attempted to remove infinite loops.
      Stop doing that.
      
      Fixes #33903
      
      Change-Id: I0fc9c1b5f2427e54ce650806602ef5e3ad65aca5
      Reviewed-on: https://go-review.googlesource.com/c/go/+/192144
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      2393d161