• Clemens Backes's avatar
    Reland "Reland "[wasm] Refactor compilation tier computations"" · d650d368
    Clemens Backes authored
    This is a reland of commit b3a27f22.
    Conditions needed to be switched to still ensure eager compilation
    of tiered-down modules (otherwise an existing test would fail).
    I opened https://crbug.com/v8/13224 to switch to lazy compilation
    for tier-down.
    
    Original change's description:
    > Reland "[wasm] Refactor compilation tier computations"
    >
    > This is a reland of commit e50472d6.
    > In {ApplyCompilationHintToInitialProgress} we would reset the baseline
    > tier to {kNone} if the compilation strategy is {kDefault}, which is
    > wrong. We would not generate code but also not install the lazy stub,
    > so whenever we start executing the code before top-tier is ready we
    > would crash.
    >
    > Original change's description:
    > > [wasm] Refactor compilation tier computations
    > >
    > > The way we initialized the "compilation progress" was pretty convoluted,
    > > with multiple levels of functions being called for initializing every
    > > single slot.
    > >
    > > This CL refactors this to compute one default value for the whole
    > > module, and only modifies those slots that need special handling (e.g.
    > > because of compilation hints, or lazy/eager compilation after
    > > deserialization).
    > >
    > > We also rename "liftoff_functions" to "eager_functions" in the
    > > deserialization path; the idea is that those functions should get
    > > eagerly compiled because we expect them to be needed during execution.
    > > Usually they would be Liftoff-compiled, but it's more consistent to use
    > > the existing logic to choose the baseline tier. In the default
    > > configuration, this will still use Liftoff, but if Liftoff is disabled
    > > we will use TurboFan instead.
    > >
    > > R=jkummerow@chromium.org, ahaas@chromium.org
    > >
    > > Bug: v8:12425
    > > Change-Id: Ie58840b19efd0b1e98f1b02d5f1d4369410ed8e1
    > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3829606
    > > Commit-Queue: Clemens Backes <clemensb@chromium.org>
    > > Reviewed-by: Andreas Haas <ahaas@chromium.org>
    > > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    > > Cr-Commit-Position: refs/heads/main@{#82521}
    >
    > Bug: v8:12425
    > Change-Id: Ie41e63148bf6bd0e38fc07a3a514f1094d9d26cf
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3838409
    > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
    > Commit-Queue: Clemens Backes <clemensb@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#82585}
    
    Bug: v8:12425, v8:13224
    Change-Id: I7da418a393cd470cfbe368f12b30a045b1bf9dcd
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3850841Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82688}
    d650d368
module-compiler.cc 159 KB