• Jakob Gruber's avatar
    [osr] Use the new OSR cache · 91da3883
    Jakob Gruber authored
    This CL switches over our OSR system to be based on the feedback
    vector osr caches.
    
    - OSRing to Sparkplug is fully separated from OSR urgency. If
      SP code exists, we simply jump to it, no need to maintain an
      installation request.
    - Each JumpLoop checks its dedicated FeedbackVector cache slot.
      If a valid target code object exists, we enter it *without*
      calling into runtime to fetch the code object.
    - Finally, OSR urgency still remains as the heuristic for
      requesting Turbofan OSR compile jobs. Note it no longer has a
      double purpose of being a generic untargeted installation
      request.
    
    With the new system in place, we can remove now-unnecessary
    hacks:
    
    - Early OSR tierup is replaced by the standard OSR system. Any
      present OSR code is automatically entered.
    - The synchronous OSR compilation fallback is removed. With
      precise installation (= per-JumpLoop-bytecode) we no longer
      have the problem of 'getting unlucky' with JumpLoop/cache entry
      mismatches. Execution has moved on while compiling? Simply spawn
      a new concurrent compile job.
    - Remove the synchronous (non-OSR) Turbofan compile request now
      that we always enter available OSR code as early as possible.
    - Tiering into Sparkplug no longer messes with OSR state.
    
    Bug: v8:12161
    Change-Id: I0a85e53d363504b7dac174dbaf69c03c35e66700
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596167
    Commit-Queue: Jakob Linke <jgruber@chromium.org>
    Auto-Submit: Jakob Linke <jgruber@chromium.org>
    Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#80147}
    91da3883
baseline-assembler.h 10.1 KB