v8/test/js-perf-test
Simon Zünd 2b0ac2fb9f [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}
2019-05-24 06:18:45 +00:00
..
Array [benchmarks] Move Array slice benchmarks to js-perf-test 2019-05-20 09:05:52 +00:00
ArrayIndexOfIncludesPolymorphic [js-perf-test] Add Array#{indexOf,includes} micro-benchmark 2018-10-31 07:55:24 +00:00
ArrayInOperator [test] Add perf test for in operator on arrays 2019-02-20 22:36:13 +00:00
ArrayLiteralInitialSpreadLargeDoubleHoley [js-perf-tests] Add micro-benchmarks for copying double arrays. 2018-10-15 15:05:21 +00:00
ArrayLiteralInitialSpreadLargeDoublePacked [js-perf-tests] Fix micro-benchmark of spreading double arrays. 2018-10-15 17:41:16 +00:00
ArrayLiteralInitialSpreadLargeHoley Remove slow ArrayLiteralInitialSpread benchmarks to avoid timeout. 2018-08-29 14:50:59 +00:00
ArrayLiteralInitialSpreadLargePacked [js-perf-tests] Fix micro-benchmark of spreading double arrays. 2018-10-15 17:41:16 +00:00
ArrayLiteralInitialSpreadLargeSmiMap [js-perf-test] Add micro-benchmarks for spreading maps and sets. 2018-10-10 08:32:15 +00:00
ArrayLiteralInitialSpreadLargeSmiSet [js-perf-test] Fix spread set benchmark. 2018-10-12 08:43:58 +00:00
ArrayLiteralInitialSpreadSmallDoubleHoley [js-perf-tests] Add micro-benchmarks for copying double arrays. 2018-10-15 15:05:21 +00:00
ArrayLiteralInitialSpreadSmallDoublePacked [js-perf-tests] Fix micro-benchmark of spreading double arrays. 2018-10-15 17:41:16 +00:00
ArrayLiteralInitialSpreadSmallHoley Enable warmup and/or longer runs for ArrayLiteralInitialSpread. 2018-08-27 08:40:46 +00:00
ArrayLiteralInitialSpreadSmallPacked Rename and fix JSON data for ArrayLiteralInitialSpread benchmarks. 2018-08-28 10:45:38 +00:00
ArrayLiteralInitialSpreadSmallSmiMap [js-perf-test] Add micro-benchmarks for spreading maps and sets. 2018-10-10 08:32:15 +00:00
ArrayLiteralInitialSpreadSmallSmiSet [js-perf-test] Fix spread set benchmark (again). 2018-10-12 10:50:59 +00:00
ArrayLiteralSpread [test] Add JSTest benchmark for array literal spread. 2018-01-23 05:39:30 +00:00
ArraySort [array] Move Array#sort pre-processing to Torque 2019-05-24 06:18:45 +00:00
AsyncAwait Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
BigInt [js-perf-test] Add additional benchmarks for boolean constructor 2019-05-15 09:07:15 +00:00
BytecodeHandlers Call the right functions in bitwise bytecode handlers benchmarks. 2017-07-17 10:58:47 +00:00
Classes [js-perf-test] Add microbenchmarks for leaf constructors. 2017-08-08 05:25:31 +00:00
Closures [test] Add performance test for closures. 2016-12-05 13:10:44 +00:00
Collections [js-perf-test] Add more WeakMap perf tests 2019-03-25 10:47:29 +00:00
DataView [dataview] Improve JS performance test coverage for DataView 2018-07-03 09:06:24 +00:00
Dates [Intl] Add benchmark for toLocaleString/localeCompare 2018-11-07 18:08:16 +00:00
Exceptions Fixes for try-catch microbenchmark 2015-06-08 10:11:34 +00:00
ExpressionDepth [parser] Use n-ary addition for template strings 2017-10-31 16:02:53 +00:00
ForLoops [js-perf-test] add microbenchmarks for C-style for loops 2017-04-12 21:56:43 +00:00
Generators [esnext] Remove always-disabled support for function.sent 2018-02-26 20:01:41 +00:00
Inspector Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
Intl Add benchmark test for Intl.Locale 2019-05-15 16:58:28 +00:00
Iterators Use merged JSTest config for performance tests. 2014-12-05 08:43:19 +00:00
Keys reland [js-perf-test] Adding micro benchmarks for for-in and keys patterns. 2016-03-02 12:25:41 +00:00
ManyClosures [Test] Add %PrepareForOptimization in tests 2019-04-30 14:18:22 +00:00
Modules Replace %RunMicrotasks with %PerformMicrotaskCheckpoint 2018-12-06 11:10:18 +00:00
Numbers [Intl] Add benchmark for toLocaleString/localeCompare 2018-11-07 18:08:16 +00:00
Object [test] Add micro benchmark for Object.create 2016-09-28 08:14:21 +00:00
ObjectFreeze Add spread call micro-benchmark for frozen array 2019-05-15 15:59:42 +00:00
ObjectLiteralSpread Reland "Reland "[test] Add JSTest benchmark for object literal spread"" 2018-04-04 16:41:10 +00:00
Parsing [js-perf] Further reducing test-case size. 2018-08-30 11:41:30 +00:00
PropertyQueries [js-perf-tests] Fix PropertyQueries test for fast-delete 2017-05-05 15:57:36 +00:00
Proxies Fix JSTest/Proxies/Set.*Trap tests to return true from the trap 2019-02-11 16:03:35 +00:00
RegExp [Intl] Add perf tests for case insensitive test 2019-03-05 22:33:08 +00:00
RestParameters [elements] Rename FAST elements kinds 2017-06-30 13:31:44 +00:00
Scope For Micro-benchmarks for 'with' 2015-06-01 07:40:11 +00:00
SixSpeed [js-perf-tests] Add classes benchmarks from SixSpeed. 2017-04-19 11:23:48 +00:00
SpreadCalls [es6] implement spread calls 2015-04-09 19:37:19 +00:00
SpreadCallsGeneral Add warmup to SpreadCallsGeneral benchmarks. 2018-09-04 16:15:54 +00:00
StackTrace [Test] Add %PrepareForOptimization in tests 2019-04-30 14:18:22 +00:00
StringIterators Fix StringToList to set right length of the new array. 2018-10-24 13:30:51 +00:00
Strings [Intl] Add String toLocale(Lower|Upper)Case perf benchmark 2019-02-15 05:53:04 +00:00
Templates Perf tests for Template Literals 2014-12-12 05:14:28 +00:00
TurboFan [turbofan] Introduce a CheckStringAdd node instead of cons string lowering 2018-08-29 09:34:26 +00:00
TypedArrays [js-perf-test] Add TypedArray#filter micro-benchmark 2019-03-04 14:40:31 +00:00
base.js [test] Ensure random generator in JSTests does not use float arithmetic 2018-12-17 10:05:08 +00:00
JSTests1.json [js-perf-test] Add additional benchmarks for boolean constructor 2019-05-15 09:07:15 +00:00
JSTests2.json [benchmarks] Move Array slice benchmarks to js-perf-test 2019-05-20 09:05:52 +00:00
JSTests3.json [test] Remove duplicated traces from the JSTests3 config 2019-04-25 18:28:45 +00:00
JSTests4.json Increase timeout for JSTests/Array test and fix Michael's username 2019-04-16 12:24:10 +00:00
JSTests5.json [test] Add missing resources to the ObjectFreeze perf test 2019-05-23 18:19:41 +00:00
OWNERS Add Peter as an owner of the JSTests benchmark 2018-02-13 02:49:25 +00:00
RegExp.json [Intl] Add perf tests for case insensitive test 2019-03-05 22:33:08 +00:00
SixSpeed.json Increase timeout for JSTests/Array test and fix Michael's username 2019-04-16 12:24:10 +00:00