commit | 7b59899e869fd1520ca45c6eb9f418402ec9ce59 | [log] [tgz] |
---|---|---|
author | Olivier Flückiger <olivf@chromium.org> | Fri Nov 10 10:15:12 2023 |
committer | V8 LUCI CQ <v8-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Nov 10 13:55:21 2023 |
tree | ac3a8f38644a2fa971ee9dc644237873da6906b5 | |
parent | 19ebfc7d159dfe1c3a28880c14d07e8724094956 [diff] |
[maglev] Hoist some phi input untagging out of loops Implement the ability to hoist untagging operations for untagged loop phis out of the loop. If we can hoist the untagging we ignore the input edge in representation inference, since it should always be cheaper to untag before the loop. For now the optimization is only enabled for OSR values. The reason is that in normal code we could have a deopt loop if we can't learn when the speculative untagging failed. To be able to insert checked untaggings we create a use a new checkpointed jump instruction that has a deopt frame attached. Bug: v8:7700 Change-Id: Ic3f3b0809374ffad412ef9028bb047dd6cd57ad0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5008116 Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Auto-Submit: Olivier Flückiger <olivf@chromium.org> Commit-Queue: Olivier Flückiger <olivf@chromium.org> Cr-Commit-Position: refs/heads/main@{#90861}
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.