| commit | dd1b8f7969111b2227fc01b408d07005927e72a4 | [log] [tgz] | 
|---|---|---|
| author | Dominik Inführ <dinfuehr@chromium.org> | Mon Dec 18 08:15:00 2023 | 
| committer | V8 LUCI CQ <v8-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Jan 25 14:43:46 2024 | 
| tree | 970f0b32acf4c97a814462dba203601c5342b7c9 | |
| parent | d53ecb521a4338be157ae8b1d8c76a49ff71150a [diff] | 
[M114-LTS][codegen] Install BytecodeArray last in SharedFunctionInfo
M114 merge issues:
  codegen/compiler.cc:
    set_age() isn't called in 114 - removed it from the change.
Maglev assumes that when a SharedFunctionInfo has a BytecodeArray,
then it should also have FeedbackMetadata. However, this may not
hold with concurrent compilation when the SharedFunctionInfo is
re-compiled after being flushed. Here the BytecodeArray was installed
on the SFI before the FeedbackMetadata and a concurrent thread could
observe the BytecodeArray but not the FeedbackMetadata.
Drive-by: Reset the age field before setting the BytecodeArray as
well. This ensures that the concurrent marker will not observe the
old age for the new BytecodeArray.
(cherry picked from commit 46cb67e3b296e50d7fda5a58233d18b9f3dab0d5)
Bug: chromium:1507412
No-Try: true
No-Presubmit: true
No-Tree-Checks: true
Change-Id: I8855ed7ecc50c4a47d2c89043d62ac053858bc75
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5125960
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#91568}
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5189926
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Roger Felipe Zanoni da Silva <rzanoni@google.com>
Cr-Commit-Position: refs/branch-heads/11.4@{#79}
Cr-Branched-From: 8a8a1e7086dacc426965d3875914efa66663c431-refs/heads/11.4.183@{#1}
Cr-Branched-From: 5483d8e816e0bbce865cbbc3fa0ab357e6330bab-refs/heads/main@{#87241}
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://v8.dev/docs
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run
    git pull origin
    gclient sync
For fetching all branches, add the following into your remote configuration in .git/config:
    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*
Please follow the instructions mentioned at v8.dev/docs/contribute.