1. 19 Jul, 2019 2 commits
  2. 18 Jul, 2019 7 commits
    • Clemens Hammacher's avatar
      Revert "Reland "[arraybuffer] Rearchitect backing store ownership"" · 6e0473f3
      Clemens Hammacher authored
      This reverts commit bc33f5ae.
      
      Reason for revert: Still failing (OOM on win32): https://ci.chromium.org/p/v8/builders/ci/V8%20Win32/22210
      
      Original change's description:
      > Reland "[arraybuffer] Rearchitect backing store ownership"
      > 
      > This is a reland of 31cd5d83
      > 
      > Original change's description:
      > > [arraybuffer] Rearchitect backing store ownership
      > > 
      > > This CL completely rearchitects the ownership of array buffer backing stores,
      > > consolidating ownership into a {BackingStore} C++ object that is tracked
      > > throughout V8 using unique_ptr and shared_ptr where appropriate.
      > > 
      > > Overall, lifetime management is simpler and more explicit. The numerous
      > > ways that array buffers were initialized have been streamlined to one
      > > Attach() method on JSArrayBuffer. The array buffer tracker in the
      > > GC implementation now manages std::shared_ptr<BackingStore> pointers,
      > > and the construction and destruction of the BackingStore object itself
      > > handles the underlying page or embedder-allocated memory.
      > > 
      > > The embedder API remains unchanged for now. We use the
      > > v8::ArrayBuffer::Contents struct to hide an additional shared_ptr to
      > > keep the backing store alive properly, even in the case of aliases
      > > from live heap objects. Thus the embedder has a lower chance of making
      > > a mistake. Long-term, we should move the embedder to a model where they
      > > manage backing stores using shared_ptr to an opaque backing store object.
      > > 
      > > R=mlippautz@chromium.org
      > > BUG=v8:9380,v8:9221
      > > 
      > > Change-Id: I48fae5ac85dcf6172a83f252439e77e7c1a16ccd
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1584323
      > > Commit-Queue: Ben Titzer <titzer@chromium.org>
      > > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#62572}
      > 
      > Bug: v8:9380, v8:9221
      > Change-Id: If3f72967a8ebeb067c0edcfc16ed631e36829dbc
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1691906
      > Commit-Queue: Ben Titzer <titzer@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#62809}
      
      TBR=ulan@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,titzer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org
      
      Change-Id: Iea755df9aaa1e95d284135bd0a6681b1340b6832
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9380, v8:9221
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708487Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62811}
      6e0473f3
    • Ben L. Titzer's avatar
      Reland "[arraybuffer] Rearchitect backing store ownership" · bc33f5ae
      Ben L. Titzer authored
      This is a reland of 31cd5d83
      
      Original change's description:
      > [arraybuffer] Rearchitect backing store ownership
      > 
      > This CL completely rearchitects the ownership of array buffer backing stores,
      > consolidating ownership into a {BackingStore} C++ object that is tracked
      > throughout V8 using unique_ptr and shared_ptr where appropriate.
      > 
      > Overall, lifetime management is simpler and more explicit. The numerous
      > ways that array buffers were initialized have been streamlined to one
      > Attach() method on JSArrayBuffer. The array buffer tracker in the
      > GC implementation now manages std::shared_ptr<BackingStore> pointers,
      > and the construction and destruction of the BackingStore object itself
      > handles the underlying page or embedder-allocated memory.
      > 
      > The embedder API remains unchanged for now. We use the
      > v8::ArrayBuffer::Contents struct to hide an additional shared_ptr to
      > keep the backing store alive properly, even in the case of aliases
      > from live heap objects. Thus the embedder has a lower chance of making
      > a mistake. Long-term, we should move the embedder to a model where they
      > manage backing stores using shared_ptr to an opaque backing store object.
      > 
      > R=mlippautz@chromium.org
      > BUG=v8:9380,v8:9221
      > 
      > Change-Id: I48fae5ac85dcf6172a83f252439e77e7c1a16ccd
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1584323
      > Commit-Queue: Ben Titzer <titzer@chromium.org>
      > Reviewed-by: Ben Titzer <titzer@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#62572}
      
      Bug: v8:9380, v8:9221
      Change-Id: If3f72967a8ebeb067c0edcfc16ed631e36829dbc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1691906
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62809}
      bc33f5ae
    • Sathya Gunasekaran's avatar
      Revert "[runtime] Fix protector invalidation" · 050ad1d8
      Sathya Gunasekaran authored
      This reverts commit e55e0aa5.
      
      Reason for revert: speculative revert for tsan breakage
      https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8907588363297935904/+/steps/Check__flakes_/0/logs/regress-437713/0
      
      Original change's description:
      > [runtime] Fix protector invalidation
      > 
      > Protectors trigger when special properties are modified or masked. Previously
      > we would check whether the property stored on the holder would invalidate the
      > protector. Stores to to the receiver rather than the holder, however, so this
      > CL changes holder for receiver, and adds additional checks that were missing.
      > 
      > Bug: v8:9466
      > Change-Id: I81bc3d73f91381da0d254e9eb79365ae2d25d998
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708468
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#62805}
      
      TBR=leszeks@chromium.org,verwaest@chromium.org
      
      Change-Id: Id8fc36525b7c5631589a67073ad1fd5815ea2775
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:9466
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708482Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62807}
      050ad1d8
    • Toon Verwaest's avatar
      [runtime] Fix protector invalidation · e55e0aa5
      Toon Verwaest authored
      Protectors trigger when special properties are modified or masked. Previously
      we would check whether the property stored on the holder would invalidate the
      protector. Stores to to the receiver rather than the holder, however, so this
      CL changes holder for receiver, and adds additional checks that were missing.
      
      Bug: v8:9466
      Change-Id: I81bc3d73f91381da0d254e9eb79365ae2d25d998
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708468
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62805}
      e55e0aa5
    • Ben L. Titzer's avatar
      [mjsunit] Nerf shared-memory-worker-stress a little · ee16525e
      Ben L. Titzer authored
      This test fails in --stress-opt mode because backing stores of
      memories/arraybuffers that are postMessage()'d leak in d8. In normal
      mode, only ~16 memories are allocated, which is not enough to OOM,
      but in stress mode, it can be 5x that number. Should be fixed
      by upcoming ownership changes.
      
      BUG=v8:9380
      R=clemensh@chromium.org
      
      Change-Id: Iecec07d15339cf43b23f128f13d570dfe3b32130
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708475Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62802}
      ee16525e
    • Ross McIlroy's avatar
      [Compile] Ensure we don't reuse a feedback vector with a different layout than expected. · b06a134c
      Ross McIlroy authored
      If we flush the bytecode from a SFI we might recompile a JSFunction while the function
      still has its old feedback vector. This should usually be fine since the new and old
      feedback vectors have the same layout, however some bugs in the parser mean that it's
      possible for eagerly and lazily compiled eval functions to have different bytecode and
      so potentially different feedback vector layouts.
      
      For now reset the feedback vector if it doesn't have the same size when we compile the
      JSFunction, and recreate a new one of the correct layout. This will be replaced with a
      CHECK once the parser bugs are fixed.
      
      BUG=chromium:984344,v8:9511
      
      Change-Id: Ib8976f2541516f7a07e4d4ab7dc3c750dfe9b5d4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708474
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62800}
      b06a134c
    • Andreas Haas's avatar
      [wasm][bulk-memory] Adjust table.copy to recent spec changes · 6e281ec3
      Andreas Haas authored
      With recent spec changes, table.copy of length 0 does not trap anymore,
      and we copy backwards whenever src < dst.
      
      R=binji@chromium.org
      
      Change-Id: I48e2b65083565631abc41bf4fdf4971f80fdf440
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1706471
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarBen Smith <binji@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62797}
      6e281ec3
  3. 17 Jul, 2019 9 commits
  4. 16 Jul, 2019 1 commit
  5. 15 Jul, 2019 5 commits
  6. 12 Jul, 2019 4 commits
  7. 11 Jul, 2019 8 commits
  8. 10 Jul, 2019 1 commit
  9. 09 Jul, 2019 3 commits