v8/test/js-perf-test/ArraySort
Simon Zünd 843b6646b1 Reland "[array] Move Array#sort pre-processing to Torque"
This is a reland of 2b0ac2fb9f

The layout test that caused this revert was fixed with:
https://crrev.com/c/1627386

Original change's description:
> [array] Move Array#sort pre-processing to Torque
>
> This CL removes the "PrepareElementsForSort" runtime function, and
> replaces it with a simpler version in Torque. The biggest difference
> is that certain sparse configurations no longer have a fast-path.
>
> The Torque pre-processing step replaces the existing Torque mechanism that
> copied already pre-processed elements into the "work" FixedArray. The Torque
> compacting works as follows:
>   - Iterate all elements from 0 to {length}
>     - If the element is the hole: Do nothing.
>     - If the element is "undefined": Increment undefined counter.
>     - In all other cases, push the element into the "work" FixedArray.
>
> Then the "work" FixedArray is sorted as before. Writing the elements from
> the "work" array back into the receiver, after sorting, has three steps:
>   1. Copy the sorted elements from the "work" FixedArray to the receiver.
>   2. Add previously counted number of "undefined" to the receiver.
>   3. Depending on the backing store either delete properties or
>      set them to the Hole up to {length}.
>
> Bug: v8:8714
> Change-Id: I14eccb7cfd2e4618bce2a85cba0689d7e0380ad2
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1619756
> Commit-Queue: Simon Zünd <szuend@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61812}

TBR: jgruber@chromium.org
Bug: v8:8714
Change-Id: If7613f6e5f37c5e0d649e8192195594bc6c32100
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627977
Commit-Queue: Simon Zünd <szuend@chromium.org>
Auto-Submit: Simon Zünd <szuend@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61827}
2019-05-24 12:13:17 +00:00
..
run.js [js-perf-test] Consistently use createSuite in all benchmarks 2018-05-29 15:06:48 +00:00
sort-base.js Reland "[array] Move Array#sort pre-processing to Torque" 2019-05-24 12:13:17 +00:00
sort-cmpfn-kindchange.js [jstests] Change sorting benchmarks to run setup for each iteration 2018-06-19 09:40:39 +00:00
sort-cmpfn.js [jstests] Change sorting benchmarks to run setup for each iteration 2018-06-19 09:40:39 +00:00
sort-lengths.js [jstest] Fix ElementsKind of the array that gets sorted 2018-08-24 07:35:07 +00:00
sort-megamorphic.js [jstests] Change sorting benchmarks to run setup for each iteration 2018-06-19 09:40:39 +00:00
sort-presorted.js [jstest] Add random data configuration to ArraySortPreSorted 2018-06-21 10:46:58 +00:00
sort.js [jstests] Change sorting benchmarks to run setup for each iteration 2018-06-19 09:40:39 +00:00