• 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
..
embedded Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
code-serializer.cc Loading commit data...
code-serializer.h Loading commit data...
context-deserializer.cc Loading commit data...
context-deserializer.h Loading commit data...
context-serializer.cc Loading commit data...
context-serializer.h Loading commit data...
deserializer.cc Loading commit data...
deserializer.h Loading commit data...
mksnapshot.cc Loading commit data...
object-deserializer.cc Loading commit data...
object-deserializer.h Loading commit data...
read-only-deserializer.cc Loading commit data...
read-only-deserializer.h Loading commit data...
read-only-serializer.cc Loading commit data...
read-only-serializer.h Loading commit data...
references.h Loading commit data...
roots-serializer.cc Loading commit data...
roots-serializer.h Loading commit data...
serializer-deserializer.cc Loading commit data...
serializer-deserializer.h Loading commit data...
serializer-inl.h Loading commit data...
serializer.cc Loading commit data...
serializer.h Loading commit data...
shared-heap-deserializer.cc Loading commit data...
shared-heap-deserializer.h Loading commit data...
shared-heap-serializer.cc Loading commit data...
shared-heap-serializer.h Loading commit data...
snapshot-compression.cc Loading commit data...
snapshot-compression.h Loading commit data...
snapshot-data.cc Loading commit data...
snapshot-data.h Loading commit data...
snapshot-empty.cc Loading commit data...
snapshot-external.cc Loading commit data...
snapshot-source-sink.cc Loading commit data...
snapshot-source-sink.h Loading commit data...
snapshot-utils.cc Loading commit data...
snapshot-utils.h Loading commit data...
snapshot.cc Loading commit data...
snapshot.h Loading commit data...
startup-deserializer.cc Loading commit data...
startup-deserializer.h Loading commit data...
startup-serializer.cc Loading commit data...
startup-serializer.h Loading commit data...