1. 04 Dec, 2018 6 commits
  2. 03 Dec, 2018 10 commits
  3. 02 Dec, 2018 2 commits
  4. 01 Dec, 2018 6 commits
  5. 30 Nov, 2018 10 commits
  6. 29 Nov, 2018 6 commits
    • Keith Randall's avatar
      cmd/compile: eliminate write barriers when writing non-heap ptrs · 2140975e
      Keith Randall authored
      We don't need a write barrier if:
      1) The location we're writing to doesn't hold a heap pointer, and
      2) The value we're writing isn't a heap pointer.
      
      The freshly returned value from runtime.newobject satisfies (1).
      Pointers to globals, and the contents of the read-only data section satisfy (2).
      
      This is particularly helpful for code like:
      p := []string{"abc", "def", "ghi"}
      
      Where the compiler generates:
         a := new([3]string)
         move(a, statictmp_)  // eliminates write barriers here
         p := a[:]
      
      For big slice literals, this makes the code a smaller and faster to
      compile.
      
      Update #13554. Reduces the compile time by ~10% and RSS by ~30%.
      
      Change-Id: Icab81db7591c8777f68e5d528abd48c7e44c87eb
      Reviewed-on: https://go-review.googlesource.com/c/151498
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      2140975e
    • Austin Clements's avatar
      runtime: check more work flushing races · 438b9544
      Austin Clements authored
      This adds several new checks to help debug #27993. It adds a mechanism
      for freezing write barriers and gcWork puts during the mark completion
      algorithm. This way, if we do detect mark completion, we can catch any
      puts that happened during the completion algorithm. Based on build
      dashboard failures, this seems to be the window of time when these are
      happening.
      
      This also double-checks that all work buffers are empty immediately
      upon entering mark termination (much earlier than the current check).
      This is unlikely to trigger based on the current failures, but is a
      good safety net.
      
      Change-Id: I03f56c48c4322069e28c50fbc3c15b2fee2130c2
      Reviewed-on: https://go-review.googlesource.com/c/151797
      Run-TryBot: Austin Clements <austin@google.com>
      Reviewed-by: default avatarMichael Knyszek <mknyszek@google.com>
      438b9544
    • Ian Lance Taylor's avatar
      cmd/cgo: use field alignment when setting field offset · fbdaa965
      Ian Lance Taylor authored
      The old code ignored the field alignment, and only looked at the field
      offset: if the field offset required padding, cgo added padding. But
      while that approach works for Go (at least with the gc toolchain) it
      doesn't work for C code using packed structs. With a packed struct the
      added padding may leave the struct at a misaligned position, and the
      inserted alignment, which cgo is not considering, may introduce
      additional, unexpected, padding. Padding that ignores alignment is not
      a good idea when the struct is not packed, and Go structs are never
      packed. So don't ignore alignment.
      
      Fixes #28896
      
      Change-Id: Ie50ea15fa6dc35557497097be9fecfecb11efd8a
      Reviewed-on: https://go-review.googlesource.com/c/150602
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarBryan C. Mills <bcmills@google.com>
      fbdaa965
    • Agniva De Sarker's avatar
      go/doc: convert to unicode quotes for ToText and Synopsis · 81a5c9c3
      Agniva De Sarker authored
      We refactor the conversion of quotes to their unicode equivalent
      to a separate function so that it can be called from ToText and Synopsis.
      
      And we introduce a temp buffer to write the escaped HTML and convert
      the unicode quotes back to html escaped entities. This simplifies the logic
      and gets rid of the need to track the index of the escaped text.
      
      Fixes #27759
      
      Change-Id: I71cf47ddcd4c6794ccdf2898ac25539388b393c1
      Reviewed-on: https://go-review.googlesource.com/c/150377
      Run-TryBot: Robert Griesemer <gri@golang.org>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      81a5c9c3
    • Gergely Brautigam's avatar
      runtime: node ordering in mTreap; adjust code to reflect description. · 689fae2d
      Gergely Brautigam authored
      Adjust mTreap ordering logic to reflect the description of mTreap ordering.
      Before it was using unsafe.Pointer in order to gather the base address of
      a span. This has been changed to use base, which is the startAddress of a
      span as the description is telling us in mgclarge.go.
      
      Fixes: golang/go#28805
      
      Change-Id: Ib3cd94a0757e23d135b5d41830f38fc08bcf16a3
      GitHub-Last-Rev: 93f749b6700b1e179de16607a18395d5e162ecc1
      GitHub-Pull-Request: golang/go#28973
      Reviewed-on: https://go-review.googlesource.com/c/151499Reviewed-by: default avatarMichael Knyszek <mknyszek@google.com>
      Run-TryBot: Michael Knyszek <mknyszek@google.com>
      689fae2d
    • Bryan C. Mills's avatar
      cmd/doc: treat any non-empty GOMOD as module mode · ec4de31c
      Bryan C. Mills authored
      Previously, we were looking for the string go.mod specifically, but
      the module-mode-outside-a-module logic added in CL 148517 sets GOMOD
      to os.DevNull
      
      Updates #28992
      
      Change-Id: I62a4baaa911a495350294d78bae96be3fe4866cb
      Reviewed-on: https://go-review.googlesource.com/c/151617
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      ec4de31c