commit | c67e989d0d134d62cca879d152d1353f9109c6c0 | [log] [tgz] |
---|---|---|
author | Hao Xu <hao.a.xu@intel.com> | Wed Jun 05 07:13:05 2024 |
committer | V8 LUCI CQ <v8-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Jun 06 10:12:36 2024 |
tree | 5be1dc7ba3e0315f95f6b3b310fc38632d2ce9de | |
parent | 554e6a95274a0adff84e3e47bfa92639950aaf63 [diff] |
[interpreter] Introduce VariableHint in BytecodeRegisterOptimizer The BytecodeRegisterOptimizer can set a variable to a RegisterInfo, this means that the register holds this variable. However, the hint can be flushed by branch. This CL makes the hint to survive across branches by setting "kMightHaveVariable" hint to RegisterInfo. This means that the variable is ever or conditionally set to the register. We use it for generating enumerated keyed access bytecode. We can do it because the bytecode handler will check this parameter anyway, so it would be fine if the hint doesn't match the actual variable in the register. Bug: v8:14245 Change-Id: I2ea7cc19c65c6128b2e599ff8a0f1d4ef5ac0359 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5466813 Commit-Queue: Hao A Xu <hao.a.xu@intel.com> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#94284}
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.