• 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
..
api Loading commit data...
asmjs Loading commit data...
ast Loading commit data...
base Loading commit data...
baseline Loading commit data...
bigint Loading commit data...
builtins Loading commit data...
codegen Loading commit data...
common Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
d8 Loading commit data...
date Loading commit data...
debug Loading commit data...
deoptimizer Loading commit data...
diagnostics Loading commit data...
execution Loading commit data...
extensions Loading commit data...
flags Loading commit data...
handles Loading commit data...
heap Loading commit data...
ic Loading commit data...
init Loading commit data...
inspector Loading commit data...
interpreter Loading commit data...
json Loading commit data...
libplatform Loading commit data...
libsampler Loading commit data...
logging Loading commit data...
maglev Loading commit data...
numbers Loading commit data...
objects Loading commit data...
parsing Loading commit data...
profiler Loading commit data...
protobuf Loading commit data...
regexp Loading commit data...
roots Loading commit data...
runtime Loading commit data...
sandbox Loading commit data...
sanitizer Loading commit data...
snapshot Loading commit data...
strings Loading commit data...
tasks Loading commit data...
temporal Loading commit data...
third_party Loading commit data...
torque Loading commit data...
tracing Loading commit data...
trap-handler Loading commit data...
utils Loading commit data...
wasm Loading commit data...
web-snapshot Loading commit data...
zone Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...