Open Bug 1613592 (WarpBuilder) Opened 2 months ago Updated 22 hours ago

[meta] Replace IonBuilder with a new MIR builder (WarpBuilder)


(Core :: JavaScript Engine: JIT, enhancement, P1)




Tracking Status
firefox74 --- fix-optional


(Reporter: jandem, Unassigned)


(Depends on 5 open bugs, Blocks 1 open bug)


(Keywords: meta)

The current IonBuilder + TI setup has a number of issues:

  • Complexity and security concerns.
  • Performance overhead for Baseline/C++ code.
  • Overspecialization, resulting in unnecessary recompilations.
  • MIR building has to be done on the main thread, often requires loop restarts.
  • Memory usage for type information and ObjectGroups.

To address this, we want to prototype a much simpler MIR builder based on compiling CacheIR to MIR. The main parts of this will be:

  1. Improve CacheIR and Baseline ICs. Avoid polymorphic stubs in certain cases. Improve the CacheIR bytecode reader interface. These changes will help both ICs and WarpBuilder.
  2. Add a new MIR builder (WarpBuilder). WarpBuilder will run some code on the main thread but MIR building will happen off-thread.
  3. Evaluate performance and optimize until we think things are in good enough shape to replace IonBuilder, TI with WarpBuilder.
Depends on: 1595476
Depends on: 1613594
Alias: warp → WarpBuilder
Type: task → enhancement
Priority: -- → P1
Depends on: 1614289
See Also: → 1324561
Depends on: 1616188
Depends on: 1617564
Depends on: 1618198
Depends on: 1620996
Depends on: 1621995
Depends on: 1623261
Depends on: 1625471
Depends on: 1626201
Depends on: 1626282
You need to log in before you can comment on or make changes to this bug.