• 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
..
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
runtime-array.cc Loading commit data...
runtime-atomics.cc Loading commit data...
runtime-bigint.cc Loading commit data...
runtime-classes.cc Loading commit data...
runtime-collections.cc Loading commit data...
runtime-compiler.cc Loading commit data...
runtime-date.cc Loading commit data...
runtime-debug.cc Loading commit data...
runtime-forin.cc Loading commit data...
runtime-function.cc Loading commit data...
runtime-futex.cc Loading commit data...
runtime-generator.cc Loading commit data...
runtime-internal.cc Loading commit data...
runtime-intl.cc Loading commit data...
runtime-literals.cc Loading commit data...
runtime-module.cc Loading commit data...
runtime-numbers.cc Loading commit data...
runtime-object.cc Loading commit data...
runtime-operators.cc Loading commit data...
runtime-promise.cc Loading commit data...
runtime-proxy.cc Loading commit data...
runtime-regexp.cc Loading commit data...
runtime-scopes.cc Loading commit data...
runtime-strings.cc Loading commit data...
runtime-symbol.cc Loading commit data...
runtime-test-wasm.cc Loading commit data...
runtime-test.cc Loading commit data...
runtime-trace.cc Loading commit data...
runtime-typedarray.cc Loading commit data...
runtime-utils.h Loading commit data...
runtime-wasm.cc Loading commit data...
runtime-weak-refs.cc Loading commit data...
runtime.cc Loading commit data...
runtime.h Loading commit data...