1. 22 May, 2019 1 commit
  2. 20 May, 2019 1 commit
  3. 17 May, 2019 2 commits
  4. 15 May, 2019 1 commit
  5. 14 May, 2019 1 commit
    • Benedikt Meurer's avatar
      [dataview] Introduce JSDataView::data_pointer field. · 4ef714a6
      Benedikt Meurer authored
      This is a preparation for doing a similar change to JSTypedArrays to
      be able to finally access huge ArrayBuffers with TypedArrays. This CL
      itself improves the performance of DataViews, sometimes to be even
      faster than TypedArrays now. On the test case[1] we go from
      
        testDataViewGetUint8: 711 ms.
        testUint8Array: 654 ms.
        testDataViewGetUint16: 801 ms.
        testUint16Array: 649 ms.
        testDataViewGetInt32: 699 ms.
        testInt32Array: 648 ms.
        testDataViewGetFloat64: 701 ms.
        testFloat64Array: 650 ms.
      
      to
      
        testDataViewGetUint8: 622 ms.
        testUint8Array: 656 ms.
        testDataViewGetUint16: 634 ms.
        testUint16Array: 656 ms.
        testDataViewGetInt32: 629 ms.
        testInt32Array: 655 ms.
        testDataViewGetFloat64: 631 ms.
        testFloat64Array: 661 ms.
      
      so the performance improves by up to **20%**.
      
      [1] https://github.com/bmeurer/js-micro-benchmarks/blob/master/bench-dataview.js
      
      Tbr: ulan@chromium.org
      Bug: chromium:225811, v8:4153, v8:8383
      Change-Id: Ie4409e2fe96e5085ddcf5eb3f24f3cacfb3afe02
      Cq-Include-Trybots: luci.chromium.try:linux-rel,win7-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601144
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61464}
      4ef714a6
  6. 20 Sep, 2018 1 commit
    • Michael Achenbach's avatar
      Revert "[es2015] Introduce JSDataView::external_pointer." · ec216398
      Michael Achenbach authored
      This reverts commit 46573e51.
      
      Reason for revert: Speculative revert for breaking chromium integration.
      
      Might break gpu tests and linux debug:
      https://ci.chromium.org/p/v8/builders/luci.v8.ci/Mac%20V8%20FYI%20Release%20(Intel)/2554
      
      Also blocks the roll:
      https://chromium-review.googlesource.com/c/chromium/src/+/1234328
      
      Original change's description:
      > [es2015] Introduce JSDataView::external_pointer.
      > 
      > This adds a new external_pointer field to every JSDataView instance
      > which points directly into the backing store at the given view's
      > byte_offset. This was the DataView performance is now almost on
      > par with the TypedArray performance for accessing aligned memory
      > (with appropriate endianess). This also serves as prepatory work
      > to enable full 64-bit addressing of DataView backing stores in
      > optimized code (soonish).
      > 
      > This change optimizes the bounds checking sequence in TurboFan in
      > such a way that it further improves the DataView set/get performance
      > by around 10%, almost closing the remaining gap between DataViews
      > and TypedArrays.
      > 
      > Drive-by-fix: Get rid of the code duplication around DataView inlining
      > in the JSCallReducer and have only a single bottleneck method now.
      > 
      > Bug: chromium:225811, v8:4153, v8:7881, v8:8171
      > Change-Id: I9118efd4d19e93f0e51c931a9bec1a56a0f4593e
      > Reviewed-on: https://chromium-review.googlesource.com/1231994
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56042}
      
      TBR=yangguo@chromium.org,mlippautz@chromium.org,tebbi@chromium.org,bmeurer@chromium.org
      
      Change-Id: I614a90043b1574b19936c37987db94806cac3bd7
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:225811, v8:4153, v8:7881, v8:8171
      Reviewed-on: https://chromium-review.googlesource.com/1234417Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56059}
      ec216398
  7. 19 Sep, 2018 1 commit
    • Benedikt Meurer's avatar
      [es2015] Introduce JSDataView::external_pointer. · 46573e51
      Benedikt Meurer authored
      This adds a new external_pointer field to every JSDataView instance
      which points directly into the backing store at the given view's
      byte_offset. This was the DataView performance is now almost on
      par with the TypedArray performance for accessing aligned memory
      (with appropriate endianess). This also serves as prepatory work
      to enable full 64-bit addressing of DataView backing stores in
      optimized code (soonish).
      
      This change optimizes the bounds checking sequence in TurboFan in
      such a way that it further improves the DataView set/get performance
      by around 10%, almost closing the remaining gap between DataViews
      and TypedArrays.
      
      Drive-by-fix: Get rid of the code duplication around DataView inlining
      in the JSCallReducer and have only a single bottleneck method now.
      
      Bug: chromium:225811, v8:4153, v8:7881, v8:8171
      Change-Id: I9118efd4d19e93f0e51c931a9bec1a56a0f4593e
      Reviewed-on: https://chromium-review.googlesource.com/1231994
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56042}
      46573e51
  8. 18 Sep, 2018 1 commit
  9. 13 Sep, 2018 1 commit
  10. 12 Sep, 2018 1 commit
  11. 17 Aug, 2018 1 commit
  12. 08 Aug, 2018 1 commit
  13. 03 Aug, 2018 1 commit
  14. 25 Jul, 2018 3 commits
  15. 24 May, 2018 1 commit
  16. 23 May, 2018 1 commit
  17. 09 Apr, 2018 1 commit
  18. 06 Apr, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  19. 03 Mar, 2018 1 commit
    • Jakob Kummerow's avatar
      [DataView] Throw TypeError when buffer is detached · 4534e8cc
      Jakob Kummerow authored
      Per spec, accesses to a DataView object must throw a TypeError if
      the underlying ArrayBuffer has been detached/neutered. Since that
      implies a length of 0, we used to detect this as an out-of-bounds
      access and throw a RangeError. Adding a separate check for buffer
      detachedness lets us distinguish both cases properly.
      
      Bug: v8:4895
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: I1c1d4145dcd77dfb69f61062e14a6e8e538d45eb
      Reviewed-on: https://chromium-review.googlesource.com/947585Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51712}
      4534e8cc
  20. 28 Feb, 2018 1 commit
  21. 23 Feb, 2018 1 commit
  22. 22 Feb, 2018 2 commits
  23. 17 Mar, 2017 1 commit
    • titzer's avatar
      [rename] Rename internal field to embedder field. · 72e53936
      titzer authored
      This CL renames all occurrences of "internal field" to "embedder field"
      to prevent confusion. As it turns out, these fields are not internal to
      V8, but are actually embedder provided fields that should not be mucked
      with by the internal implementation of V8.
      
      Note that WASM does use these fields, and it should not.
      
      BUG=v8:6058
      
      Review-Url: https://codereview.chromium.org/2741683004
      Cr-Commit-Position: refs/heads/master@{#43900}
      72e53936
  24. 13 Feb, 2017 2 commits
    • vabr's avatar
      Fix error message for invalid buffer offset · 1dd803f9
      vabr authored
      The constructor for TypedArray in js/typedarray.js emitted
      kInvalidTypedArrayAlignment if the array offset exceeded the size of the
      underlying buffer. This seems like a typo introduced in
      https://codereview.chromium.org/2090353003.
      
      The error message to be emitted instead coincides with the already existing
      kInvalidDataViewOffset. The message string is independent of whether the
      object in question is a DataView or a typed array, so this CL:
        (1) renames kInvalidDataViewOffset to just kInvalidOffset, and
        (2) uses kInvalidOffset instead of kInvalidTypedArrayAlignment for cases
            when the TypedArray is constructed with an offset exceeding the buffer
            size.
      
      BUG=v8:5733
      TEST=Run d8, execute "new Uint8Array(new ArrayBuffer(1),2)", see the error message mention the invalid offset 2.
      
      Review-Url: https://codereview.chromium.org/2692753002
      Cr-Commit-Position: refs/heads/master@{#43151}
      1dd803f9
    • Marja Hölttä's avatar
      [iwyu] Remove unallowed include arguments.h -> objects-inl.h · d1055c1f
      Marja Hölttä authored
      After this, only 2 illegal includes to objects-inl.h remain (some wasm stuff).
      
      R=​mstarzinger@chromium.org
      BUG=v8:5294
      
      Change-Id: I18682f42f0d2a7cc29a0a0be76f8e4eea26aafd9
      Reviewed-on: https://chromium-review.googlesource.com/441744Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#43147}
      d1055c1f
  25. 14 Oct, 2016 1 commit
  26. 07 Oct, 2016 3 commits
  27. 02 Sep, 2016 1 commit
  28. 17 Aug, 2016 1 commit
    • bakkot's avatar
      Reland of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex.... · a3c13435
      bakkot authored
      Reland of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex. (patchset #2 id:170001 of https://codereview.chromium.org/2113593002/ )
      
      Reason for revert:
      WebGL tests have been updated and rolled (at https://codereview.chromium.org/2227023002), so this should no longer fail outdated tests.
      
      Original issue's description:
      > Revert of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex. (patchset #8 id:140001 of https://codereview.chromium.org/2090353003/ )
      >
      > Reason for revert:
      > Speculative revert to unblock roll: https://codereview.chromium.org/2107223003/
      >
      > Original issue's description:
      > > Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex.
      > >
      > > The spec was modified to relax some requirements which implementors had not been
      > > enforcing. Part of this process involved introducing a new abstract operation
      > > ToIndex, which had partial overlap with our existing semantics as well as some
      > > differences (most notably treating undefined as 0). Test262 tests were introduced to
      > > check for the new semantics, some of which we were failing. This patch amends the
      > > parts of our implementation corresponding to specification algorithms which use
      > > ToIndex to follow its semantics precisely.
      > >
      > > BUG=v8:4784,v8:5120
      > >
      > > Committed: https://crrev.com/09720349ea058d178521ec58d0a5676443a5a132
      > > Cr-Commit-Position: refs/heads/master@{#37406}
      >
      > TBR=littledan@chromium.org,adamk@chromium.org,bakkot@google.com
      > # Skipping CQ checks because original CL landed less than 1 days ago.
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > BUG=v8:4784,v8:5120
      >
      > Committed: https://crrev.com/b1f7f1f4e41a723d5f997738a07e35a031713b8f
      > Cr-Commit-Position: refs/heads/master@{#37417}
      
      TBR=littledan@chromium.org,adamk@chromium.org,hablich@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=v8:4784,v8:5120
      
      Review-Url: https://codereview.chromium.org/2247073004
      Cr-Commit-Position: refs/heads/master@{#38689}
      a3c13435
  29. 20 Jul, 2016 1 commit