- 16 Oct, 2018 1 commit
-
-
peterwmwong authored
This also includes ports of Array.p.toString and Array.p.toLocaleString. Many parts of the old JS implementation are preserved, because TypedArray.p.join still relies on it. These will be removed once TypedArray.p.join is ported to Torque. To simplify implementation, special handling of extremely sparse arrays has been removed. Performance improvements vary by array size, elements, and sparse-ness. Some quick numbers and graphs are here: https://docs.google.com/spreadsheets/d/125VLmRMudk8XaomLCsZQ1ewc94WCqht-8GQwU3s9BW8/edit#gid=2087673710 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ia4069a068403ce36676c37401d349aefc976b045 Reviewed-on: https://chromium-review.googlesource.com/c/1196693 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#56699}
-
- 06 Sep, 2018 2 commits
-
-
Simon Zünd authored
Some helpers in array.js are now dead code after the recent changes to array builtins (splice/unshift). R=jgruber@chromium.org Bug: v8:8015 Change-Id: I3e0c0280516b539533bcc3b21d84e448112e4ec7 Reviewed-on: https://chromium-review.googlesource.com/1208632Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55678}
-
Simon Zünd authored
This CL implements a generic baseline version of Array.p.unshift in Torque, enabling us to remove the JS fall-back. The elements-accessor fast-path is still used, but the check whether to use it is also moved to Torque. Support for sparse JSArrays is removed. Drive-by change: Small refactoring in builtins-array that will get extended to other array builtins in a follow-up CL. R=cbruni@chromium.org, jgruber@chromium.org Bug: v8:7624 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I7b23ce15e7b922eb333f61a408050dedec77c95a Reviewed-on: https://chromium-review.googlesource.com/1189902 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@{#55670}
-
- 04 Sep, 2018 1 commit
-
-
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:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55610}
-
- 03 Sep, 2018 1 commit
-
-
Simon Zünd authored
This CL replaces the JavaScript fall-back for Array.p.shift with a baseline C++ implementation. R=jgruber@chromium.org Bug: v8:7624 Change-Id: Ib55e04e18e4e69089fc541636d3cad7fcb4c7245 Reviewed-on: https://chromium-review.googlesource.com/1186327 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55576}
-
- 28 Aug, 2018 1 commit
-
-
Simon Zünd authored
This CL re-implements Array.p.lastIndexOf in Torque. The implementation consists of a generic baseline path and a fast-path for JSArrays with fast ElementsKinds. Sparse support for JSArrays was removed. Bug: v8:7624 Change-Id: I6ae877aaf99fa97a91763b3d60a0ee05623ab085 Reviewed-on: https://chromium-review.googlesource.com/1190345 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55451}
-
- 24 Aug, 2018 1 commit
-
-
Simon Zünd authored
This CL adds a baseline implementation for Array.p.reverse in Torque, as well as fastpaths for PACKED elements kinds. Support for sparse JSArrays was removed. R=jgruber@chromium.org, petermarshall@chromium.org Bug: v8:7624 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I12900fbbb44746f1c5d36b78be826e14b88b4f69 Reviewed-on: https://chromium-review.googlesource.com/1185600 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55369}
-
- 23 Aug, 2018 3 commits
-
-
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:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#55360}
-
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:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#55355}
-
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:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55325}
-
- 22 Aug, 2018 1 commit
-
-
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:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55289}
-
- 21 Aug, 2018 1 commit
-
-
Tobias Tebbi 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. Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ia7334a30b401988309e9909cfa0069da0bb6fb9f Reviewed-on: https://chromium-review.googlesource.com/1169466Reviewed-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}
-
- 14 Aug, 2018 1 commit
-
-
Leszek Swirski authored
This reverts commit 5a389395. Reason for revert: Breaks some chromium tests. Not your fault, but it's blocking the roll so we have to fix those first -- then you can reland without changes: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/21727 Original change's description: > [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} TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7382, v8:7624 Change-Id: Id4002d8080648c418639d35e7b82487fa43f463d Reviewed-on: https://chromium-review.googlesource.com/1174231 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55114}
-
- 09 Aug, 2018 3 commits
-
-
Simon Zünd authored
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}
-
Simon Zünd authored
This CL adds a baseline Torque implementation without fast-paths for Array.p.copyWithin. The JS version in array.js is removed. R=cbruni@chromium.org, jgruber@chromium.org Bug: v8:7624 Change-Id: Ie53047883a65dd9310ea8f8d0edb440f431044ea Reviewed-on: https://chromium-review.googlesource.com/1165223Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55000}
-
Michael Hablich authored
This reverts commit ff4fa92e. Reason for revert: blocks roll: https://chromium-review.googlesource.com/c/chromium/src/+/1167969 ... see https://chromium-swarm.appspot.com/task?id=3f344f7ada4e0110&refresh=10&show_raw=1 for stacktrace. Original change's description: > [builtins] Enable Torque Array.prototype.splice > > 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: Ibfa3407ed75b9ad15ac54cce446b3952e38f90a9 > Reviewed-on: https://chromium-review.googlesource.com/1039190 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54974} TBR=danno@chromium.org,yangguo@chromium.org,mvstanton@chromium.org,tebbi@chromium.org,szuend@google.com Change-Id: I900f667b30a0cf673ead9621618a9988cf85ffdf 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/1168902 Commit-Queue: Michael Hablich <hablich@chromium.org> Reviewed-by:
Michael Hablich <hablich@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#54998}
-
- 08 Aug, 2018 1 commit
-
-
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. Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ibfa3407ed75b9ad15ac54cce446b3952e38f90a9 Reviewed-on: https://chromium-review.googlesource.com/1039190Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#54974}
-
- 03 Aug, 2018 2 commits
-
-
Georg Neis authored
After the recent bugfix, the special case for 'undefined' is no longer needed. Bug: v8:7813 Change-Id: Iee3fccd72c525ac86a6fa6b3c55bcd2ce8159852 Reviewed-on: https://chromium-review.googlesource.com/1161906Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#54897}
-
Hai Dang authored
Also add more test cases of Array lastIndexOf with proxy, inspired by test262. In the path for sparse arrays, no changes are needed because element accesses are not observable there (thanks to UseSparseVariant). Bug: v8:7813 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ifd47149f654e92f56d0a1ed6b3debc93718702be Reviewed-on: https://chromium-review.googlesource.com/1160307 Commit-Queue: Hai Dang <dhai@google.com> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#54887}
-
- 18 Jul, 2018 1 commit
-
-
Simon Zünd authored
This CL moves Array.p.fill from JavaScript to a C++ builtin. It has a generic slow-path and fast-paths implemented via ElementsAccessor in elements.cc. R=cbruni@chromium.org Bug: v8:7624 Change-Id: I8820e1195d2cd9b41c254058923ad9875aab067c Reviewed-on: https://chromium-review.googlesource.com/1131130 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54522}
-
- 16 Jul, 2018 1 commit
-
-
Frank Tang authored
Use the given locale and options when performing toLocaleString on each individual element in a given array. Bug: v8:7832 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I718a33c42e85819065599ee6bad59fb25afa7e15 Reviewed-on: https://chromium-review.googlesource.com/1132464 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#54474}
-
- 06 Jul, 2018 2 commits
-
-
Simon Zünd authored
This CL extends the existing ArrayPop C++ builtin with a generic slow-path that replaces the JavaScript fallback. R=cbruni@chromium.org, jgruber@chromium.org Bug: v8:7624 Change-Id: Ie3ce5379e5c65df67cbc4d956390a8701345ea3c Reviewed-on: https://chromium-review.googlesource.com/1127162 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@{#54284}
-
Simon Zünd authored
This CL extends the existing ArrayPush C++ builtin with a generic slow-path that replaces the JavaScript fall-back. Bug: v8:7624 Change-Id: I1e8431601e8a872f3c5afba5d486f37fd5781d60 Reviewed-on: https://chromium-review.googlesource.com/1126922Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#54282}
-
- 03 Jul, 2018 1 commit
-
-
Simon Zünd authored
This CL is a manual revert of the Array.p.sort Torque QuickSort implementation. The plan is to ship TimSort in either Chromium 69 or 70 and not ship Torque-QuickSort at all (to keep disruption to a minimum). For this reason we revert back to the implementation in array.js. R=jgruber@chromium.org Bug: chromium:859809, v8:7382 Change-Id: I92eb70408883f51d98311e78642f554316bc1e76 Reviewed-on: https://chromium-review.googlesource.com/1124334Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#54166}
-
- 05 Jun, 2018 1 commit
-
-
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:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53511}
-
- 04 Jun, 2018 2 commits
-
-
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:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53494}
-
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:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53481}
-
- 16 May, 2018 1 commit
-
-
Simon Zünd authored
This CL consolidates CopyFromPrototype and RemoveArrayHoles into a single runtime function. It also creates two small helper functions that are needed in both pre-processing steps. Additionally it removes the return value from CopyFromPrototype since it is no longer needed (it was previously used by a sort post- processing step that no longer exists). Bug: v8:7382 Change-Id: I7f9b00c1bc639d2118fdecef9c3b45c2cf010310 Reviewed-on: https://chromium-review.googlesource.com/1051887 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@{#53199}
-
- 08 May, 2018 3 commits
-
-
Simon Zünd authored
To stay compatible with JSC, Array.p.sort did a post-processing step that shadowed elements from the prototype chain. Some time ago, JSC changed and no longer exhibits this behavior. To preserve comptibility and stay consistent with RemoveArrayHoles, this CL removes this post-processing step altogether and adjusts tests to expect the new behavior. R=cbruni@chromium.org, jgruber@chromium.org Bug: v8:7382 Change-Id: Iecedc37cea25001d3768b99a3a9de3a2db90ba82 Reviewed-on: https://chromium-review.googlesource.com/1047286 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@{#53066}
-
Simon Zünd authored
This CL re-implements CopyFromPrototype, that is used during sorting, as a runtime function, in preparation to move Array.p.sort to CSA. CopyFromPrototype is called for sparse non-arrays, where elements might be available on the prototype chain. For compatibility with JSC, we copy them to the object itself and sort only own properties. Bug: v8:7382 Change-Id: I4f5c14995cf9769c4f9f1d62b3a5bfde6d386556 Reviewed-on: https://chromium-review.googlesource.com/1044205 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#53061}
-
Simon Zünd authored
This CL implements the functionality of SafeRemoveArrayHoles (JS), which is used as a pre-processing step for sorting, in a runtime function. SafeRemoveArrayHoles is a generic fallback, when an existing runtime function fails to remove holes/move undefineds to the end of an array. This CL extends the existing runtime function to also support JSProxy objects, and objects where indices have accessors. R=cbruni@chromium.org, jgruber@chromium.org Bug: v8:7382 Change-Id: I4881539cf2171caba08ff6e3e50320291f49839c Reviewed-on: https://chromium-review.googlesource.com/1041950 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@{#53060}
-
- 23 Apr, 2018 1 commit
-
-
Georg Neis authored
Several functions on Array.prototype incorrectly threw a TypeError just because their receiver was sealed or frozen. Bug: v8:7677 Change-Id: I4ec38bfbf468f9bd676f1c0b341c8a50cf814f15 Reviewed-on: https://chromium-review.googlesource.com/1021870 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52718}
-
- 16 Apr, 2018 1 commit
-
-
Georg Neis authored
If the new length is too large, we must throw a TypeError. Bug: v8:7652 Change-Id: I47268c04405f7a5f5bbc971cd434f2d786af9ca1 Reviewed-on: https://chromium-review.googlesource.com/1013563Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#52624}
-
- 28 Mar, 2018 1 commit
-
-
Daniel Clifford authored
Change-Id: Ifdeda00ad55aa937a6a414e7e566e6640ccd83c0 Reviewed-on: https://chromium-review.googlesource.com/980936Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#52278}
-
- 27 Mar, 2018 1 commit
-
-
jgruber authored
Change-Id: I7d5d9ff4d69628573586c1a8e5704d2b6009adc8 Reviewed-on: https://chromium-review.googlesource.com/980534Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52250}
-
- 09 Feb, 2018 1 commit
-
-
Dan Elphick authored
This removes the Javascript version of Array.from in js/array.js and adds a CodeStubAssembler version in src/builtins/builtins-array-gen.cc. Also modify IteratorBuiltinsAssembler to allow querying the existence of the iterator method without calling it so we can fall back to the array-like behavior. BUG=v8:1956 Change-Id: Ibfb3cef002d72d70bd30b4de676fd22becde006c Reviewed-on: https://chromium-review.googlesource.com/887066Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#51208}
-
- 18 Jan, 2018 1 commit
-
-
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:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50680}
-
- 05 Dec, 2017 1 commit
-
-
peterwmwong authored
- Removes JS implementation and InnerArrayFind/InnerArrayFindIndex - Adds TFJ, with TFS for slow continuation path Some quick benchmarks show ~2x improvement for unoptimized code and up to 16% improvement against optimized code (diminishes with larger arrays as iterating dominates). https://github.com/peterwmwong/v8-perf/blob/master/array-find-findIndex/README.md Bug: chromium:791045, v8:1956, v8:5049, v8:7165 Change-Id: Ie16252ed495bbd91fe548b16d5ef6764de791a50 Reviewed-on: https://chromium-review.googlesource.com/804704Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49851}
-
- 29 Nov, 2017 2 commits
-
-
peterwmwong authored
This reduces the overhead of calling the builtin. Quick measurements show >5x improvement. As the typed array's size grows, iterating dominates and the performance gap closes. https://github.com/peterwmwong/v8-perf/blob/master/typedarray-findIndex/README.md Bug: v8:5929 Change-Id: I27d67776c83cbe28f4f9f5ef479a7eeabf594654 Reviewed-on: https://chromium-review.googlesource.com/792394 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49720}
-
peterwmwong authored
This reduces the overhead of calling the builtin. Quick measurements show >5x improvement. As the typed array's size grows, iterating dominates and the performance gap closes. https://github.com/peterwmwong/v8-perf/blob/master/typedarray-find/README.md Bug: v8:5929 Change-Id: Ia74546bb46d446c6161c8956e350d4b5cdc1b328 Reviewed-on: https://chromium-review.googlesource.com/792454 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49706}
-