Open Bug 1613592 (WarpBuilder) Opened 10 months ago Updated 5 days ago

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

Categories

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

enhancement

Tracking

()

Tracking Status
firefox74 --- fix-optional

People

(Reporter: jandem, Unassigned)

References

(Depends on 20 open bugs, Blocks 4 open bugs)

Details

(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
Depends on: 1626854
Depends on: 1627174
Depends on: 1627216
Depends on: 1627879
Depends on: 1627916
Depends on: 1628211
See Also: 1324561
Depends on: 1629569
Depends on: 1629570
Depends on: 1629778
Depends on: 1629897
Depends on: 1632761
No longer depends on: 1632761
Depends on: 1633736
Depends on: 1635039
Depends on: 1635717
Depends on: 1636059
Depends on: 1638111
Depends on: 1640107
Depends on: 1640211
Depends on: 1640748
Depends on: 1640829
No longer depends on: 1640748
Depends on: 1643304
Depends on: 1360369
Depends on: 1645353
Depends on: 1646035
Depends on: 1646036
Depends on: 1646039
Depends on: 1646378
Depends on: 1647242
Depends on: 1648005
Blocks: 1648546
Depends on: 1651645
Depends on: 1655451
Depends on: 1657088
Depends on: 1657303
Depends on: 1657372
Depends on: 1660983
Depends on: 1660862
Depends on: 1661426
Depends on: 1661695
Depends on: 1661861
Blocks: 1662152
Depends on: 1662366
Depends on: 1662688
Depends on: 1663404
Depends on: 1663847
Depends on: 1664357
Depends on: 1664573
Depends on: 1664786
Depends on: 1664617
Depends on: 1665227
Depends on: 1665396
Depends on: 1665415
Depends on: 1666009
Depends on: 1666039
Depends on: 1666230
Depends on: 1666417
Depends on: 1666569
Depends on: 1667361
Depends on: 1667732
Depends on: 1667864
Depends on: 1668532
Depends on: 1669091
Depends on: 1671228
Depends on: 1671635
Depends on: 1673497
Depends on: 1675084
Depends on: 1676470

Possible regression in bug 1676694

You need to log in before you can comment on or make changes to this bug.