• Leszek Swirski's avatar
    [compiler-dispatcher] Move Job pointer to SFI · 3b9091c8
    Leszek Swirski authored
    Reduce the enqueuing cost of compiler-dispatcher jobs by getting rid of
    the sets and hashmaps, and instead:
    
      1. Turning the pending job set into a queue, and
      2. Making the SharedFunctionInfo's UncompiledData hold a pointer to
         the LazyCompilerDispatcher::Job, instead of maintaining an
         IdentityMap from one to the other.
    
    To avoid bloating all UncompiledData, this adds two new UncompiledData
    subclasses, making it four subclasses total, for with/without Preparse
    data and with/without a Job pointer. "should_parallel_compile"
    FunctionLiterals get allocated an UncompiledData with a job pointer by
    default, otherwise enqueueing a SFI without a job pointer triggers a
    reallocation of the UncompiledData to add a job pointer.
    
    Since there is no longer a set of all Jobs (aside from one for
    debug-only), we need to be careful to manually clear the Job pointer
    from the UncompiledData whenever we finish a Job (whether successfully
    or by aborting) and we have to make sure that we implicitly can reach
    all Jobs via the pending/finalizable lists, or the set of currently
    running jobs.
    
    Change-Id: I3aae78e6dfbdc74f5f7c1411de398433907b2705
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3314833Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#78302}
    3b9091c8
Name
Last commit
Last update
..
benchmarks Loading commit data...
bigint Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
debugging Loading commit data...
fuzzer Loading commit data...
fuzzilli Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-api-tests Loading commit data...
wasm-js Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
OWNERS Loading commit data...