• 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
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
loong64 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
riscv64 Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
arguments-inl.h Loading commit data...
arguments.cc Loading commit data...
arguments.h Loading commit data...
clobber-registers.cc Loading commit data...
clobber-registers.h Loading commit data...
embedder-state.cc Loading commit data...
embedder-state.h Loading commit data...
encoded-c-signature.cc Loading commit data...
encoded-c-signature.h Loading commit data...
execution.cc Loading commit data...
execution.h Loading commit data...
frame-constants.h Loading commit data...
frames-inl.h Loading commit data...
frames.cc Loading commit data...
frames.h Loading commit data...
futex-emulation.cc Loading commit data...
futex-emulation.h Loading commit data...
interrupts-scope.cc Loading commit data...
interrupts-scope.h Loading commit data...
isolate-data.h Loading commit data...
isolate-inl.h Loading commit data...
isolate-utils-inl.h Loading commit data...
isolate-utils.h Loading commit data...
isolate.cc Loading commit data...
isolate.h Loading commit data...
local-isolate-inl.h Loading commit data...
local-isolate.cc Loading commit data...
local-isolate.h Loading commit data...
messages.cc Loading commit data...
messages.h Loading commit data...
microtask-queue.cc Loading commit data...
microtask-queue.h Loading commit data...
pointer-authentication-dummy.h Loading commit data...
pointer-authentication.h Loading commit data...
protectors-inl.h Loading commit data...
protectors.cc Loading commit data...
protectors.h Loading commit data...
shared-mutex-guard-if-off-thread.h Loading commit data...
simulator-base.cc Loading commit data...
simulator-base.h Loading commit data...
simulator.h Loading commit data...
stack-guard.cc Loading commit data...
stack-guard.h Loading commit data...
thread-id.cc Loading commit data...
thread-id.h Loading commit data...
thread-local-top.cc Loading commit data...
thread-local-top.h Loading commit data...
tiering-manager.cc Loading commit data...
tiering-manager.h Loading commit data...
v8threads.cc Loading commit data...
v8threads.h Loading commit data...
vm-state-inl.h Loading commit data...
vm-state.h Loading commit data...