From 33a026b0fd665a91258caf7ce6a004aef58c02c1 Mon Sep 17 00:00:00 2001 From: Pedro Pontes Date: Tue, 1 Nov 2022 23:29:59 +0100 Subject: [PATCH 1/2] chore: [20-x-y] cherry-pick ec236fef54b8 from v8 --- patches/v8/.patches | 1 + patches/v8/cherry-pick-ec236fef54b8.patch | 40 +++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 patches/v8/cherry-pick-ec236fef54b8.patch diff --git a/patches/v8/.patches b/patches/v8/.patches index 78f32c49e463e..f48e0f81d56b4 100644 --- a/patches/v8/.patches +++ b/patches/v8/.patches @@ -14,3 +14,4 @@ ext-code-space_fix_coderange_allocation_logic.patch cherry-pick-8b040cb69e96.patch cherry-pick-2f6a2939514f.patch cherry-pick-194bcc127f21.patch +cherry-pick-ec236fef54b8.patch diff --git a/patches/v8/cherry-pick-ec236fef54b8.patch b/patches/v8/cherry-pick-ec236fef54b8.patch new file mode 100644 index 0000000000000..e58488deee787 --- /dev/null +++ b/patches/v8/cherry-pick-ec236fef54b8.patch @@ -0,0 +1,40 @@ +From ec236fef54b801fcfd89342108cfe95d20db2fd8 Mon Sep 17 00:00:00 2001 +From: Tobias Tebbi +Date: Wed, 26 Oct 2022 11:19:59 +0200 +Subject: [PATCH] Merged: [turbofan] do not optimize any stores for field type None + +Fixed: chromium:1378239 +(cherry picked from commit db83e72034c0d431ff2f73e3c4ae3130c0f3e4e1) + +Change-Id: I061d5dfe6e4ee24e6d0e7df56e15fbe37752d51e +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3982254 +Reviewed-by: Tobias Tebbi +Commit-Queue: Igor Sheludko +Cr-Commit-Position: refs/branch-heads/10.6@{#45} +Cr-Branched-From: 41bc7435693fbce8ef86753cd9239e30550a3e2d-refs/heads/10.6.194@{#1} +Cr-Branched-From: d5f29b929ce7746409201d77f44048f3e9529b40-refs/heads/main@{#82548} +--- + +diff --git a/src/compiler/access-info.cc b/src/compiler/access-info.cc +index 024a803..4c89233 100644 +--- a/src/compiler/access-info.cc ++++ b/src/compiler/access-info.cc +@@ -451,9 +451,15 @@ + map, descriptor, details_representation)); + } else if (details_representation.IsHeapObject()) { + if (descriptors_field_type->IsNone()) { +- // Store is not safe if the field type was cleared. +- if (access_mode == AccessMode::kStore) { +- return Invalid(); ++ switch (access_mode) { ++ case AccessMode::kStore: ++ case AccessMode::kStoreInLiteral: ++ case AccessMode::kDefine: ++ // Store is not safe if the field type was cleared. ++ return Invalid(); ++ case AccessMode::kLoad: ++ case AccessMode::kHas: ++ break; + } + + // The field type was cleared by the GC, so we don't know anything From b146013c440fd7e1944d194c95d65d9c0da8567f Mon Sep 17 00:00:00 2001 From: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 22:46:19 +0000 Subject: [PATCH 2/2] chore: update patches --- patches/v8/cherry-pick-ec236fef54b8.patch | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/patches/v8/cherry-pick-ec236fef54b8.patch b/patches/v8/cherry-pick-ec236fef54b8.patch index e58488deee787..4ebdc326b7490 100644 --- a/patches/v8/cherry-pick-ec236fef54b8.patch +++ b/patches/v8/cherry-pick-ec236fef54b8.patch @@ -1,7 +1,7 @@ -From ec236fef54b801fcfd89342108cfe95d20db2fd8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Tobias Tebbi Date: Wed, 26 Oct 2022 11:19:59 +0200 -Subject: [PATCH] Merged: [turbofan] do not optimize any stores for field type None +Subject: Merged: [turbofan] do not optimize any stores for field type None Fixed: chromium:1378239 (cherry picked from commit db83e72034c0d431ff2f73e3c4ae3130c0f3e4e1) @@ -13,13 +13,12 @@ Commit-Queue: Igor Sheludko Cr-Commit-Position: refs/branch-heads/10.6@{#45} Cr-Branched-From: 41bc7435693fbce8ef86753cd9239e30550a3e2d-refs/heads/10.6.194@{#1} Cr-Branched-From: d5f29b929ce7746409201d77f44048f3e9529b40-refs/heads/main@{#82548} ---- diff --git a/src/compiler/access-info.cc b/src/compiler/access-info.cc -index 024a803..4c89233 100644 +index 307bf44cf42381ec820221806fbbc5705d71de3c..237734929f3e71e05312981506bb0735631b9451 100644 --- a/src/compiler/access-info.cc +++ b/src/compiler/access-info.cc -@@ -451,9 +451,15 @@ +@@ -454,9 +454,15 @@ PropertyAccessInfo AccessInfoFactory::ComputeDataFieldAccessInfo( map, descriptor, details_representation)); } else if (details_representation.IsHeapObject()) { if (descriptors_field_type->IsNone()) {