Closed Bug 1913114 Opened 6 months ago Closed 4 months ago

Add pref for lazy tiering that only enables it for GC modules

Categories

(Core :: JavaScript: WebAssembly, task, P3)

task

Tracking

()

RESOLVED FIXED
133 Branch
Tracking Status
firefox133 --- fixed

People

(Reporter: rhunt, Assigned: rhunt)

References

(Blocks 1 open bug)

Details

Attachments

(5 files)

Enable the new compile pipeline in Nightly [1]. Also change how the pref works in two ways:

  1. Only enable the new mode when the type section has a GC type in it.
  2. If we do enable the new mode, we must force tiering to be enabled. This is currently done here [2], but must be done elsewhere to ensure that we only do it for modules that have GC types in it.

[1] https://searchfox.org/mozilla-central/rev/b1b87f95ecea00828298d1b3cd3d8718f9fcc3fc/modules/libpref/init/StaticPrefList.yaml#8255
[2] https://searchfox.org/mozilla-central/rev/b1b87f95ecea00828298d1b3cd3d8718f9fcc3fc/js/src/wasm/WasmCompile.cpp#254-256

  • Remove the experimental part of these flags.
  • Rename the overall flag to just talk about lazy_tiering.
  • Add a lazy_tiering_for_gc which enables this feature only for wasm-gc modules.
Assignee: nobody → rhunt
Status: NEW → ASSIGNED

Remove the experimental prefix from our tiering level, and use the max in our tests
to ensure we have coverage of tier-ups.

Depends on D225124

Remove experimental prefix from inlining prefs.
Fix capitalization of callRef to match the instruction.

Depends on D225125

These classes just embed pref values that are already stored
elsewhere. The pref values are just as fast to access as these
heuristic classes so we should just avoid duplicating them.

Depends on D225126

  • Add a 'wasm_lazy_tiering_synchronous' flag which avoids a background compile
    to simplify testing.
  • Update all tests to use the right prefs.
  • Enable some tests that were erroneously disabled still
  • Fix an issue with stack comparisons where the 'request-tier-up' stub
    was included.

Depends on D225127

Pushed by rhunt@eqrion.net: https://hg.mozilla.org/integration/autoland/rev/8f48c0f2c326 wasm: Rename lazy tiering prefs and add pref that enables lazy tiering only for wasm-gc. r=yury https://hg.mozilla.org/integration/autoland/rev/9d334755b46f wasm: Rename tiering aggressiveness pref and use it in our tests. r=yury https://hg.mozilla.org/integration/autoland/rev/fc0435ff8eaa wasm: Remove 'experimental' from inlining prefs. r=yury https://hg.mozilla.org/integration/autoland/rev/0d36cfe5c8bf wasm: Make heuristics static classes. r=yury https://hg.mozilla.org/integration/autoland/rev/1a822192b8d8 wasm: Update tests for new flags, add a sync flag. r=yury

I used this bug number thinking the patch series would actually enable this feature in nightly. But then realized we need to do some other things first and should land this in the meantime. I'm going to file a new bug for enabling in nightly.

Summary: Enable lazy tiering and speculative inlining for Wasm GC modules in nightly → Add pref for lazy tiering that only enables it for GC modules
Duplicate of this bug: 1913106
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: