• Dominik Inführ's avatar
    [compiler, heap] Create LocalHeap outside of ExecuteJob · 44708a5b
    Dominik Inführ authored
    Create LocalHeap directly in the Task or in GetOptimizedCodeNow and
    pass its reference as argument to ExecuteJob. This allows us to create
    LocalHeap differently for the main and background thread, e.g. by
    passing an additional argument to the constructor in the future.
    It will be required in the future anyways when the main thread will
    have its own LocalHeap/LocalIsolate.
    
    Extending the scope of LocalHeap, also made
    HandleBase::IsDereferenceAllowed more precise and uncovered two
    potential issues: heap accesses in
    OptimizingCompileDispatcher::CompileNext and PipelineImpl::AssembleCode
    with --code-comments.
    
    LocalHeap can now be created in the parked state. Also fixed a data
    race with LocalHeap's destructor publishing write barrier entries
    without holding the lock.
    
    Bug: v8:10315
    Change-Id: I9226972601a07b87108cd66efbbb6a0d118af58d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2460818
    Commit-Queue: Georg Neis <neis@chromium.org>
    Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarSantiago Aboy Solanes <solanes@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70521}
    44708a5b
compiler.h 22 KB