b8b136cb36
When the interrupt_budget is exhausted, Maglev code calls into runtime for tiering logic in TieringManager. As always, the runtime call itself has a certain (noticeable) overhead. This CL is an optimization based on the observation that the TieringManager only performs simple bookkeeping if the tiering_state (or osr_tiering_state) is kInProgress. We can avoid the runtime call overhead in this case. Changes are: 1. Extract the interrupt check (= stack check) into generated code s.t. it's separate from tiering logic. Note, combining the interrupt check and tiering logic was a previous optimization to reduce generated code size, introduced in crrev.com/c/3049076. 2. Skip the runtime call to Runtime::kBytecodeBudgetInterrupt if `tiering_state == kInProgress || osr_tiering_state == kInProgress`. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel Bug: v8:7700 Change-Id: Ibcd416aaea7abdd087741551fa213fa033fe12e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4127157 Auto-Submit: Jakob Linke <jgruber@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#85028} |
||
---|---|---|
.github | ||
bazel | ||
build_overrides | ||
custom_deps | ||
docs | ||
gni | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.bazelrc | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.flake8 | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gn | ||
.mailmap | ||
.style.yapf | ||
.vpython3 | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.bazel | ||
BUILD.gn | ||
CODE_OF_CONDUCT.md | ||
codereview.settings | ||
COMMON_OWNERS | ||
DEPS | ||
DIR_METADATA | ||
ENG_REVIEW_OWNERS | ||
INFRA_OWNERS | ||
INTL_OWNERS | ||
LICENSE | ||
LICENSE.fdlibm | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
LOONG_OWNERS | ||
MIPS_OWNERS | ||
OWNERS | ||
PPC_OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
RISCV_OWNERS | ||
S390_OWNERS | ||
WATCHLISTS | ||
WORKSPACE |
V8 JavaScript Engine
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
Getting the Code
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/*
Contributing
Please follow the instructions mentioned at v8.dev/docs/contribute.