- 17 November, 2020 10:23
Also called WarpBuilder, Warp improves responsiveness and memory usage and speeds up page loads by making changes to JiT (just-in-time) compilers. Optimizing JiT is changed to rely solely on the CacheIR simple linear bytecode format, specifically, CacheIR data collected by the baseline tiers.
The new architecture leveraged in the browser also is described as being more maintainable and unlocking additional SpiderMonkey improvements.
Basing Warp on CacheIR enabled removal of code throughout the engine that was needed to track global type inference data used by IonBuilder, resulting in speed-ups.
Although IonBuilder and WarpBuilder both produce Ion MIR, an intermediate representation used by the optimising JiT back end, IonBuilder had a lot of complex code not needed in WarpBuilder. Warp also can do more work off-thread and needs fewer recompilations. Plans call for continued optimisations on Warp, which at present is slower than Ion on some synthetic benchmarks.
Warp has replaced the front end — the MIR building phase — of the IonMonkey JiT. Plans call for removing the old code and architecture, which is likely to happen in Firefox 85. Additional performance and memory usage improvements are anticipated as a result.