- 24 May, 2019 3 commits
-
-
Simon Zünd authored
This is a reland of 2b0ac2fb 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}
-
Simon Zünd authored
This reverts commit 2b0ac2fb. Reason for revert: Breaks scrollingcoordinator/non-fast-scrollable-region-nested.html layout test on https://ci.chromium.org/p/v8/builders/ci/V8-Blink%20Linux%2064/32241 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=peter.wm.wong@gmail.com,jgruber@chromium.org,tebbi@chromium.org,szuend@chromium.org Change-Id: If1c1bc07f38dfbd4bf6b6ce8f9d70714e7526877 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8714 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627976Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61814}
-
Simon Zünd authored
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}
-
- 14 Sep, 2018 1 commit
-
-
Jakob Gruber authored
This reverts commit 99e13e58. Reason for revert: Reverting in favor of a general mechanism for this in Torque. Original change's description: > [builtins] Add FastCallFunction builtin that elides some checks > > This CL adds a new "Call" stub that can be used by builtins that will > call the same JS call-back function often (e.g. compare function in > Array.p.sort). The checks have to be done upfront once, but can then > be omitted. > > R=jgruber@chromium.org > > Bug: v8:7861 > Change-Id: Id6e4ca27c3d488a7b1f708cbcb4cbe6cc382513e > Reviewed-on: https://chromium-review.googlesource.com/1208574 > 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@{#55769} TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7861 Change-Id: I47260993ef2a16bd5348bb0b46da4d34d33ea10b Reviewed-on: https://chromium-review.googlesource.com/1226871 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#55897}
-
- 11 Sep, 2018 1 commit
-
-
Simon Zünd authored
This CL adds a new "Call" stub that can be used by builtins that will call the same JS call-back function often (e.g. compare function in Array.p.sort). The checks have to be done upfront once, but can then be omitted. R=jgruber@chromium.org Bug: v8:7861 Change-Id: Id6e4ca27c3d488a7b1f708cbcb4cbe6cc382513e Reviewed-on: https://chromium-review.googlesource.com/1208574 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@{#55769}
-
- 24 Aug, 2018 1 commit
-
-
Simon Zünd authored
This CL fixes the "sort-lengths" benchmark so the ElementsKind of the array to sort is PACKED_SMI again. This was somehow broken. R=jgruber@chromium.org Change-Id: I129e001eae4c88e9f99174b3494193232d933c3f Reviewed-on: https://chromium-review.googlesource.com/1188122Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55371}
-
- 23 Aug, 2018 1 commit
-
-
Simon Zünd authored
This CL fixes wrong parentheses that caused the sort-length benchmark to generate "random" arrays that only contained zeroes. R=ishell@chromium.org Change-Id: Ie2a564da037425a4ef9c2417597cdc13b497e32b Reviewed-on: https://chromium-review.googlesource.com/1186332Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#55336}
-
- 13 Aug, 2018 1 commit
-
-
Camillo Bruni authored
Drive-by-fix: - Remove obsolete mark_shared_functions_for_tier_up flag Bug: chromium:873728 Change-Id: I6c18b2e55068be913a3fc16932a9be0f9f02b635 Reviewed-on: https://chromium-review.googlesource.com/1173232 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#55101}
-
- 21 Jun, 2018 2 commits
-
-
Simon Zünd authored
All other sorting benchmarks use arrays of roughly the same length. This CL adds a set of benchmarks that sort arrays of various lengths. Two data configurations are used for each length: Completely random and already sorted. R=jgruber@chromium.org Bug: v8:7382 Change-Id: Ib80a3421a68029c8e4f823605bab7b2d7fe1ae34 Reviewed-on: https://chromium-review.googlesource.com/1109509 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53917}
-
Simon Zünd authored
This CL adds sorting of a randomized array to the PreSorted benchmark to act as a baseline/reference point. R=jgruber@chromium.org Bug: v8:7382 Change-Id: I45b77a6584d5d9a4f14a807f3796af7197673eaa Reviewed-on: https://chromium-review.googlesource.com/1109508Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53913}
-
- 19 Jun, 2018 1 commit
-
-
Simon Zünd authored
This CL changes all ArraySort benchmarks to execute the setup function for each iteration (one run call), instead of only once for all iterations. Even though we now also measure the time needed to copy and prepare the array, this is needed, otherwise we would mainly measure sorting already sorted arrays. R=cbruni@chromium.org, jgruber@chromium.org Change-Id: I2e0e301b52b0288b8c825c3c8401c348c4a0dee7 Reviewed-on: https://chromium-review.googlesource.com/1105045Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53825}
-
- 05 Jun, 2018 1 commit
-
-
Camillo Bruni authored
Bug: chromium:848622 Change-Id: I8fff648fc4867cfbad1ee762652a5e628c66aeaa Reviewed-on: https://chromium-review.googlesource.com/1086929Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#53520}
-
- 29 May, 2018 2 commits
-
-
Simon Zünd authored
The regression test 2185-2 measured the Array.p.sort time for various pre-sorted data configurations. This CL adds the various data configurations to the ArraySortPreSorted benchmark and removes the regression test altogether. R=cbruni@chromium.org, jgruber@chromium.org Change-Id: I6e2eb235e4a7578f4a107229bfc6a9e89a3aa5e3 Reviewed-on: https://chromium-review.googlesource.com/1076188 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@{#53420}
-
Camillo Bruni authored
Change-Id: I7bf0144bacd0572a42b98d0a0f19df3daf63128b Bug: chromium:840785 Reviewed-on: https://chromium-review.googlesource.com/1051240 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#53418}
-
- 22 May, 2018 1 commit
-
-
Simon Zünd authored
This CL adds a benchmark where the array to sort undergoes multiple element kind transitions before it is sorted. R=jgruber@chromium.org Bug: v8:7382 Change-Id: I5196a33139a5f3b833719c2a111dc9a521bdb37c Reviewed-on: https://chromium-review.googlesource.com/1066012 Commit-Queue: Simon Zünd <szuend@google.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53283}
-
- 12 Apr, 2018 1 commit
-
-
Simon Zünd authored
This adds benchmarks that sort all element kinds with multiple comparison functions. This also adds benchmarks that cause the element kind of the array to change after x amount of comparisons. The last set of benchmarks that are added, measure performance on pre-sorted arrays. R=jgruber@chromium.org, petermarshall@chromium.org Bug: v8:7382 Change-Id: I620de37f4a28f8096682bb708ea4f7a9a21d5316 Reviewed-on: https://chromium-review.googlesource.com/1009602 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#52574}
-
- 11 Apr, 2018 1 commit
-
-
Simon Zünd authored
The sort benchmarks are currently in their own directory, because we might want to run them in isolation during the upcoming sort rework. R=jgruber@chromium.org, petermarshall@chromium.org Bug: v8:7382 Change-Id: Ic2e4e34d2838690529511d591099a66d0b908b0a Reviewed-on: https://chromium-review.googlesource.com/1004997Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#52537}
-