• Jakob Gruber's avatar
    [osr] Refactor TieringManager::MaybeOptimizeFrame · 0f1fbfbe
    Jakob Gruber authored
    This started out as a minor code move of early-osr logic, but
    became a more general refactor of the tiering decisions.
    
    Early-OSR: the intent here is to trigger OSR as soon as possible
    when matching OSR'd code is cached. Move this out of ShouldOptimize
    (since it has side effects), and into a dedicated function that's
    called early in the decision process.
    
    Note that with this change, we no longer trigger normal TF optimization
    along with the OSR request - TF tiering heuristics are already complex
    enough, let's not add yet another special case right now.
    
    Other refactors:
    
    - Clarify terminology around OSR. None of the functions in TM actually
      perform OSR; instead, they only increase the OSR urgency, effectively
      increasing the set of loops that will trigger OSR compilation.
    - Clarify the control flow through the tiering decisions. Notably,
      we only increment OSR urgency when normal tierup has previously been
      requested. Also, there is a bytecode size limit involved. These
      conditions were previously hidden inside other functions.
    
    Bug: v8:12161
    Change-Id: I8f58b4332bd9851c6b299655ce840555fb7efa92
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3529448Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79512}
    0f1fbfbe
Name
Last commit
Last update
.github Loading commit data...
bazel Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.bazelrc Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.flake8 Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.mailmap Loading commit data...
.style.yapf Loading commit data...
.vpython Loading commit data...
.vpython3 Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.bazel Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
INTL_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LOONG_OWNERS Loading commit data...
MIPS_OWNERS Loading commit data...
OWNERS Loading commit data...
PPC_OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
RISCV_OWNERS Loading commit data...
S390_OWNERS Loading commit data...
WATCHLISTS Loading commit data...
WORKSPACE Loading commit data...
codereview.settings Loading commit data...