• Clemens Backes's avatar
    [wasm] Refactor callback triggering · 0dc598df
    Clemens Backes authored
    1) Instead of passing three boolean values to |TriggerCallbacks|, pass
       one EnumSet which contains all events to trigger.
    2) Remember which events already happened, to avoid triggering them
       again.
    3) Compute triggered events once after the loop in |OnFinishedUnits|,
       instead of checking for every finished unit.
    4) When a new callback is registered, trigger all previous events
       immediately. This solves issue v8:10217.
    5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now.
    6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were
       compiled (this is a minor performance optimization; we save taking
       and releasing a lock).
    7) Drive-by: Make the |EnumSet| constructor really constexpr (by making
       |Mask| constexpr).
    
    R=ahaas@chromium.org
    
    Bug: v8:10217
    Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66459}
    0dc598df
module-compiler.cc 118 KB