• Leszek Swirski's avatar
    [compiler-dispatcher] Enqueue tasks for non-eager inner funcs · 5ab1ec1e
    Leszek Swirski authored
    Add suppose for compiling non-eager, non-top-level inner functions in
    parallel, using the compiler dispatcher. This behaviour can be enabled
    with --parallel-compile-tasks-for-lazy.
    
    There are a couple of consequences:
    
      * To support this we need support for off-thread ScopeInfo
        deserialization, so this adds that too.
      * The previous --parallel-compile-tasks flag is renamed to the more
        descriptive --parallel-compile-tasks-for-eager-toplevel.
      * Both parallel-compile-tasks flags are moved onto
        UnoptimizedCompileFlags so that they can be enabled/disabled on a
        per-compile basis (e.g. enabled for streaming, disabled for
        re-parsing).
      * asm.js compilations can now happen without an active Context (in
        the compiler dispatcher's idle finalization) so we can't get a
        ContextId for metric reporting; we'd need to somehow fix this if we
        wanted asm.js UKM but for now it's probably fine.
      * Took the opportunity to clean up some of the "can preparse" logic in
        the parser.
    
    Change-Id: I20b1ec6a6bacfe268808edc8d812b92370c5840d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3281924
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Reviewed-by: 's avatarEmanuel Ziegler <ecmziegler@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#78183}
    5ab1ec1e
compiler.h 24.7 KB