1. 16 Oct, 2018 1 commit
  2. 06 Sep, 2018 2 commits
  3. 04 Sep, 2018 1 commit
    • Mike Stanton's avatar
      [builtins] Enable Torque Array.prototype.splice · fd334b32
      Mike Stanton authored
      Before, splice was implemented with a C++ fast path and a
      comprehensive JavaScript version.
      
      This impl. is entirely in Torque with a fastpath for SMI,
      DOUBLE and OBJECT arrays, and a comprehensive slow path.
      The same level of "sparse" array support as given by the
      array.js implementation is included.
      
      This reland addresses several issues:
      
      * Removed "sparse" array support from splice.
      * Addressed ClusterFuzz issue 876443:
        The test and code that uses the fix is in this CL.
        The fix in isolation can be seen here:
        https://chromium-review.googlesource.com/c/v8/v8/+/1199403
      * Removed dead code in elements.cc
      
      BUG=chromium:876443, v8:8131, v8:1956, v8:7221
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: I2d4a66c24ba1edabeca34e27e6ff8ee6136ed5f1
      Reviewed-on: https://chromium-review.googlesource.com/1201783
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55610}
      fd334b32
  4. 03 Sep, 2018 1 commit
  5. 28 Aug, 2018 1 commit
  6. 24 Aug, 2018 1 commit
  7. 23 Aug, 2018 3 commits
    • Simon Zünd's avatar
      Reland ^2 "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort" · fa11e2ac
      Simon Zünd authored
      This is a reland of 9e48a24f
      
      Original change's description:
      > Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
      >
      > The CL was reverted because it broke some tests in ChromeOS.
      >
      > > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
      > >
      > > This CL changes the sorting algorithm used in Array.p.sort from
      > > QuickSort to TimSort (implemented in Torque).
      > >
      > > Detailed performance results can be found here: https://goo.gl/4E733J
      > >
      > > To save on code space, fast-paths are implemented as sets of
      > > function pointers instead of specializing generics.
      > >
      > > R=cbruni@chromium.org, jgruber@chromium.org
      > >
      > > Bug: v8:7382, v8:7624
      > > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
      > > Reviewed-on: https://chromium-review.googlesource.com/1151199
      > > Commit-Queue: Simon Zünd <szuend@google.com>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55003}
      >
      > Bug: v8:7382, v8:7624
      > Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
      > Reviewed-on: https://chromium-review.googlesource.com/1184901
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55325}
      
      Bug: v8:7382, v8:7624
      Change-Id: I297611f45c09967e0f6961156b0c9ebdebc7053f
      Reviewed-on: https://chromium-review.googlesource.com/1186801
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55360}
      fa11e2ac
    • Maya Lekova's avatar
      Revert "Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"" · 8e43b9c0
      Maya Lekova authored
      This reverts commit 9e48a24f.
      
      Reason for revert: Possibly breaking the V8-Blink Mac bot - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Mac/15097
      
      Original change's description:
      > Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
      > 
      > The CL was reverted because it broke some tests in ChromeOS.
      > 
      > > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
      > >
      > > This CL changes the sorting algorithm used in Array.p.sort from
      > > QuickSort to TimSort (implemented in Torque).
      > >
      > > Detailed performance results can be found here: https://goo.gl/4E733J
      > >
      > > To save on code space, fast-paths are implemented as sets of
      > > function pointers instead of specializing generics.
      > >
      > > R=cbruni@chromium.org, jgruber@chromium.org
      > >
      > > Bug: v8:7382, v8:7624
      > > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
      > > Reviewed-on: https://chromium-review.googlesource.com/1151199
      > > Commit-Queue: Simon Zünd <szuend@google.com>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55003}
      > 
      > Bug: v8:7382, v8:7624
      > Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
      > Reviewed-on: https://chromium-review.googlesource.com/1184901
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55325}
      
      TBR=jgruber@chromium.org,szuend@google.com
      
      Change-Id: Ie7e2af57a6480aa0504ba21ec98ee825d7ac74fe
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7382, v8:7624
      Reviewed-on: https://chromium-review.googlesource.com/1186601Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55355}
      8e43b9c0
    • Simon Zünd's avatar
      Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort" · 9e48a24f
      Simon Zünd authored
      The CL was reverted because it broke some tests in ChromeOS.
      
      > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
      >
      > This CL changes the sorting algorithm used in Array.p.sort from
      > QuickSort to TimSort (implemented in Torque).
      >
      > Detailed performance results can be found here: https://goo.gl/4E733J
      >
      > To save on code space, fast-paths are implemented as sets of
      > function pointers instead of specializing generics.
      >
      > R=cbruni@chromium.org, jgruber@chromium.org
      >
      > Bug: v8:7382, v8:7624
      > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
      > Reviewed-on: https://chromium-review.googlesource.com/1151199
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55003}
      
      Bug: v8:7382, v8:7624
      Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
      Reviewed-on: https://chromium-review.googlesource.com/1184901
      Commit-Queue: Simon Zünd <szuend@google.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55325}
      9e48a24f
  8. 22 Aug, 2018 1 commit
    • Tobias Tebbi's avatar
      Revert "[builtins] Reland Array.prototype.splice() Torque implementation." · e99a1092
      Tobias Tebbi authored
      This reverts commit cdaaa311.
      
      Reason for revert: chromium:876445 chromium:876453 chromium:876443
      
      Original change's description:
      > [builtins] Reland Array.prototype.splice() Torque implementation.
      > 
      > Before, splice was implemented with a C++ fast path and a
      > comprehensive JavaScript version.
      > 
      > This impl. is entirely in Torque with a fastpath for SMI,
      > DOUBLE and OBJECT arrays, and a comprehensive slow path.
      > The same level of "sparse" array support as given by the
      > array.js implementation is included.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Ia7334a30b401988309e9909cfa0069da0bb6fb9f
      > Reviewed-on: https://chromium-review.googlesource.com/1169466
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55263}
      
      TBR=mvstanton@chromium.org,jgruber@chromium.org,tebbi@chromium.org
      
      Change-Id: I5b750a98e671b7284474ffcabc6b4d37a9d1219e
      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/1184741Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55289}
      e99a1092
  9. 21 Aug, 2018 1 commit
  10. 14 Aug, 2018 1 commit
  11. 09 Aug, 2018 3 commits
  12. 08 Aug, 2018 1 commit
  13. 03 Aug, 2018 2 commits
  14. 18 Jul, 2018 1 commit
  15. 16 Jul, 2018 1 commit
  16. 06 Jul, 2018 2 commits
  17. 03 Jul, 2018 1 commit
  18. 05 Jun, 2018 1 commit
    • Simon Zünd's avatar
      Reland "[array] Implement Array.p.sort in Torque" · aff80345
      Simon Zünd authored
      This is a reland of df1676e6
      
      Original change's description:
      > [array] Implement Array.p.sort in Torque
      >
      > This CL implements a generic baseline version and 3 fastpaths, for
      > various elements kinds, of Array.p.sort in Torque. Details can be found
      > in the Design Doc: https://goo.gl/Ge321G.
      >
      > Performance impact on micro benchmarks depends on the element kind
      > and whether the user provides a comparison function.
      > For HoleySmi/HoleyElement we have a speedup between 1.5-1.8 across
      > the board. For Dictionary we are slower in all micro benchmarks (0.7).
      > For PackedSmi it depends on the call site and whether or not a
      > comparison function is used.
      >
      > Detailed numbers: https://goo.gl/mTyPSb
      >
      > Bug: v8:7382
      > Change-Id: I50acabd2032af0bc01d36b0de0f555d66be56a7e
      > Reviewed-on: https://chromium-review.googlesource.com/1061523
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#53481}
      
      Bug: v8:7382,v8:7806,chromium:849293
      Change-Id: I176cb660d92eb174bd91685cb0a39f50c4cbaa69
      Reviewed-on: https://chromium-review.googlesource.com/1086827Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Simon Zünd <szuend@google.com>
      Cr-Commit-Position: refs/heads/master@{#53511}
      aff80345
  19. 04 Jun, 2018 2 commits
    • Jakob Gruber's avatar
      Revert "[array] Implement Array.p.sort in Torque" · 3348ed0b
      Jakob Gruber authored
      This reverts commit df1676e6.
      
      Reason for revert: https://crbug.com/v8/7382#c26
      
      Original change's description:
      > [array] Implement Array.p.sort in Torque
      > 
      > This CL implements a generic baseline version and 3 fastpaths, for
      > various elements kinds, of Array.p.sort in Torque. Details can be found
      > in the Design Doc: https://goo.gl/Ge321G.
      > 
      > Performance impact on micro benchmarks depends on the element kind
      > and whether the user provides a comparison function.
      > For HoleySmi/HoleyElement we have a speedup between 1.5-1.8 across
      > the board. For Dictionary we are slower in all micro benchmarks (0.7).
      > For PackedSmi it depends on the call site and whether or not a
      > comparison function is used.
      > 
      > Detailed numbers: https://goo.gl/mTyPSb
      > 
      > Bug: v8:7382
      > Change-Id: I50acabd2032af0bc01d36b0de0f555d66be56a7e
      > Reviewed-on: https://chromium-review.googlesource.com/1061523
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#53481}
      
      TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com
      
      Change-Id: I4c1b32a434d49caba67c80bccb068390607f90a2
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7382
      Reviewed-on: https://chromium-review.googlesource.com/1085407Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53494}
      3348ed0b
    • Simon Zünd's avatar
      [array] Implement Array.p.sort in Torque · df1676e6
      Simon Zünd authored
      This CL implements a generic baseline version and 3 fastpaths, for
      various elements kinds, of Array.p.sort in Torque. Details can be found
      in the Design Doc: https://goo.gl/Ge321G.
      
      Performance impact on micro benchmarks depends on the element kind
      and whether the user provides a comparison function.
      For HoleySmi/HoleyElement we have a speedup between 1.5-1.8 across
      the board. For Dictionary we are slower in all micro benchmarks (0.7).
      For PackedSmi it depends on the call site and whether or not a
      comparison function is used.
      
      Detailed numbers: https://goo.gl/mTyPSb
      
      Bug: v8:7382
      Change-Id: I50acabd2032af0bc01d36b0de0f555d66be56a7e
      Reviewed-on: https://chromium-review.googlesource.com/1061523
      Commit-Queue: Simon Zünd <szuend@google.com>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53481}
      df1676e6
  20. 16 May, 2018 1 commit
  21. 08 May, 2018 3 commits
  22. 23 Apr, 2018 1 commit
  23. 16 Apr, 2018 1 commit
  24. 28 Mar, 2018 1 commit
  25. 27 Mar, 2018 1 commit
  26. 09 Feb, 2018 1 commit
  27. 18 Jan, 2018 1 commit
    • Dan Elphick's avatar
      Replace JS version of Array.of with a CSA version · 0d4ed06c
      Dan Elphick authored
      This removes the Javascript version of Array.of in js/array.js and adds
      a CodeStubAssembler version in src/builtins/builtins-array-gen.cc.
      
      Mostly this change is for code-health reasons but it also gives
      performance improvements for nearly all cases with the exception of
      "transplanted" arrays. E.g.
      function ArrayLike {}
      ArrayLike.of = Array.of
      ArrayLike.of(...) is now slower in the perf tests. Most of this change
      can be attributed to using CallRuntime(kSetProperty,...) to set the
      length. The JS version can do better due to inline caches trained on
      the same datatype for 1000s of iterations, but this kind of workload is
      unlikely.
      
      Change-Id: I18e5b19b185257e9e0d553e1183b40ba4a5d3289
      Reviewed-on: https://chromium-review.googlesource.com/863625
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50680}
      0d4ed06c
  28. 05 Dec, 2017 1 commit
  29. 29 Nov, 2017 2 commits