• Jakob Linke's avatar
    [maglev] Implement Maglev-to-Turbofan tiering · 0bc4b452
    Jakob Linke authored
    ML-TF tiering remains very similar to Ignition-TF tiering:
    
    - When the interrupt budget is exhausted, enter the TieringManager
      which potentially decides to tier up and sets the appropriate
      TieringState on the FeedbackVector.
    - The prologue on ML function entry recognizes the TieringState (and
      also available cached TF code) and starts compilation and/or jumps
      into optimized code.
    
    TODOs:
    
    - ML-to-TF OSR is not yet supported.
    - ML code is no longer cached on the FeedbackVector.
    - Tracing is rudimentary.
    - The generated function-entry prologue is fairly large and must be
      either minimized or extracted into a builtin.
    - Tiering involving Sparkplug is not entirely robust yet (Sparkplug
      code may be installed with unexpected timing).
    
    Bug: v8:7700
    Change-Id: I86b0692477f51b9967f318a4093bc874344120b3
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3629149Reviewed-by: 's avatarVictor Gomes <victorgomes@chromium.org>
    Commit-Queue: Jakob Linke <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82351}
    0bc4b452
js-function.cc 53.8 KB