- 17 May, 2021 1 commit
-
-
Fanchen Kong authored
This CL makes a call to CollectCallFeedback from Ignition load the receiver lazily, which may improve the performance of Octane/{Richards, Delta-Blue} with --no-opt for 1-3%. Bug: chromium:1207349 Change-Id: I5fb09d5c5662ef8714acf71dd7341d3164b44f93 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2895358Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Fanchen Kong <fanchen.kong@intel.com> Cr-Commit-Position: refs/heads/master@{#74580}
-
- 06 May, 2021 1 commit
-
-
Fanchen Kong authored
When a function is invoked by prototype.apply, it may undergo following transformation in the JSCallReducer: receiver.apply(this, args) -> this.receiver(...args) Since the new target (also the receiver of apply()) is not collected to the feedback slot, further speculative optimization on the new target is not available if the new target is not a heapconstant. With this CL, the receiver will be collected to the feedback instead of the target if the target is a prototype.apply. It may improve the performance of the following usecase by ~80%. function reduceArray(func, arr, r) { for (var i = 0, len = arr.length; i < len; i++) { r = func.apply(null, r, arr[i]); } return r; } var a = 0; for (var i = 0; i < 10000000; i++) { a += reduceArray(Math.imul, [5,6,2,3,7,6,8,3,7,9,2,5,], 1); } console.log(a); This CL also improves the runTime score of JetStream2/richards-wasm by ~45% in default, ~60% with --turbo-inline-js-wasm-calls. Change-Id: I542eb8d3fcb592f4e0993af93ba1af70e89c3982 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639813 Commit-Queue: Fanchen Kong <fanchen.kong@intel.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#74413}
-
- 17 Feb, 2021 1 commit
-
-
Victor Gomes authored
Change-Id: Icdd2d4a178415d240a82378ffa575e6e6b79dca1 Bug: v8:11429 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697353Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72805}
-
- 05 Oct, 2020 1 commit
-
-
Sathya Gunasekaran authored
Instead of loading the map from the feedback vector for monomorphic access, this CL directly inlines the expected map constant as a static check. In case this static check fails, we call out to a builtin which performs additional dynamic map checks. There are several dynamic map checks performed by the builtin for various cases such as: (a) IC is monomorphic with a map that's different from the initial static map that we checked, in which case we perform another dynamic map check. (b) IC is monomorphic but incoming map is a deprecated map in which case we call out the runtime to migrate this incoming object to a new map and then try to handle it. (c) IC has now transitioned to polymorphic in which we use the old dynamic polymorphic checks to validate the map and handler. Bug: v8:10582, v8:9684 Change-Id: Id87265ed513e4aef87b8e66c826afbf10f50a1d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2429034 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#70304}
-
- 12 May, 2020 3 commits
-
-
Jakob Gruber authored
Previously implemented directly in InterpreterAssembler::Construct, this will soon also be needed to implement a Construct_WithFeedback builtin. Bug: v8:8888 Change-Id: I01a00914c6554a5b83f414a93d85a15ec02df662 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2193717 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#67753}
-
Tobias Tebbi authored
- Change the Torque parser to support nested namespaces. All the rest of Torque has already supported them for a long time. - Use nested namespaces in ic-callable.tq and torque-internal.tq. Bug: v8:7793 Change-Id: I869ce21e4a6aeb5951815815cbd4feedfcb312b3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2196127 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67750}
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: Id2a93f8ac8c512dbc5cdeb43a97e04d8d6684954 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2196130 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67748}
-
- 11 May, 2020 1 commit
-
-
Jakob Gruber authored
Collecting feedback for {Call,InstanceOf,Construct} is similar but distressingly different. In preparation for adding a CollectConstructFeedback helper, this CL ports {Call,InstanceOf} feedback collection to Torque. Bug: v8:8888 Change-Id: Iaacc137ef46a77a4fe2857ec41c5cc30614dfdf0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187497Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#67703}
-