• Caitlin Potter's avatar
    [builtins] implement RunMicrotasks pump as a code stub · 52ff3ae4
    Caitlin Potter authored
    - Implement RunMicrotasks in CSA to prevent a potentially large number
      of jumps between C++ and JS code while consuming te queue. Appears to
      provide a ~60% speedup in microtask-heavy code, which from limited
      testing appears to scale linearly.
    
      The code-stub microtask pump bails out to the old C++ microtask pump
      if it encounters a CallHandlerInfo microtask, and remains in C++ for
      the remainder of the queue (returning to the JS/stub implementation
      after the bailed out queue is exhausted).
    
    - Add a variation of JSEntryStub which enters the new RunMicrotasks code
      stub.
    
    - Add a new RunMicrotasks helper to Execution, which uses the
      RunMicrotasks entry stub.
    
    Bug: 
    Change-Id: I4667d4dd633d24455ea5d7cef239da0af1a7365e
    Reviewed-on: https://chromium-review.googlesource.com/650486
    Commit-Queue: Caitlin Potter <caitp@igalia.com>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#49842}
    52ff3ae4
code-stubs-x64.cc 45.5 KB