Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: cherry-pick fbfd2557c2ab from v8 (#30821)
* chore: cherry-pick fbfd2557c2ab from v8 * chore: update patches Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
- Loading branch information
1 parent
cd062ac
commit efd18b0
Showing
2 changed files
with
34 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Mythri A <mythria@chromium.org> | ||
Date: Fri, 21 May 2021 11:12:41 +0100 | ||
Subject: Return early when initializing feedback cell for AsmWasm functions | ||
|
||
AsmWasmFunctions don't allocate / use feedback vectors. | ||
|
||
Bug: chromium:1206289 | ||
Change-Id: I970d5eaba6603809a844c2fc5753efba411cd719 | ||
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2909854 | ||
Commit-Queue: Mythri Alle <mythria@chromium.org> | ||
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> | ||
Cr-Commit-Position: refs/heads/master@{#74708} | ||
|
||
diff --git a/src/objects/js-function.cc b/src/objects/js-function.cc | ||
index 35010be838ea1a5a3bebbb8a86d3358092da5199..b17550a29668d3dab082a515c7287b219becd01d 100644 | ||
--- a/src/objects/js-function.cc | ||
+++ b/src/objects/js-function.cc | ||
@@ -361,6 +361,14 @@ void JSFunction::InitializeFeedbackCell( | ||
Handle<JSFunction> function, IsCompiledScope* is_compiled_scope, | ||
bool reset_budget_for_feedback_allocation) { | ||
Isolate* const isolate = function->GetIsolate(); | ||
+#if V8_ENABLE_WEBASSEMBLY | ||
+ // The following checks ensure that the feedback vectors are compatible with | ||
+ // the feedback metadata. For Asm / Wasm functions we never allocate / use | ||
+ // feedback vectors, so a mismatch between the metadata and feedback vector is | ||
+ // harmless. The checks could fail for functions that has has_asm_wasm_broken | ||
+ // set at runtime (for ex: failed instantiation). | ||
+ if (function->shared().HasAsmWasmData()) return; | ||
+#endif // V8_ENABLE_WEBASSEMBLY | ||
|
||
if (function->has_feedback_vector()) { | ||
CHECK_EQ(function->feedback_vector().length(), |