First stage POWER9 Firefox JIT passes tests

Yeah, so about that OpenPOWER Minimum Viable Product JavaScript JIT for Firefox. This occurred (all timings from an unoptimized debug construct on my dual-8 Talos II with

- j24


%./ mach jstests-- args "-- no-ion-- no-baseline-- blinterp-eager-- regexp-warmup-threshold= 0" -F -j24

[43359|    0|    0|  614]100%====================================== >|529.7 s


%./ mach jstests-- args "-- no-ion-- no-baseline" -F -j24

[43359|    0|    0|  614]100%====================================== >|499.0 s


%js/src/jit-test/ jit_test. py-- args "-- no-ion-- no-baseline-- blinterp-eager-- regexp-warmup-threshold= 0" -f -j24 obj/dist/bin/ js

[8193|   0|   0|   0]100%========================================== >|132.3 s


%js/src/jit-test/ jit_test. py-- args "-- no-ion-- no-baseline" -f -j24 obj/dist/bin/ js

[8193|   0|   0|   0]100%========================================== >|133.3 s


That’s a wrap, folks: the MVP, specified as Baseline Interpreter with irregexp and Wasm assistance for little-endian POWER9, is now formally V. This is the very first and most affordable of the JIT tiers, however is currently a substantial enhancement; the JavaScript conformance suite carried out utilizing the exact same interpreter with -- no-ion-- no-baseline-- no-blinterp-- no-native-regexp took 762.4 seconds (1.53 x as long) and one test timed out entirely. An enhanced construct would be even much faster.

Presently the code generator makes heavy usage of POWER9-specific directions, in addition to VSX to make effective usage of the FPU. There are secondary objectives of little-endian POWER8 and big-endian assistance (consisting of pre-OpenPOWER so your G5 can play too), however these weren’t required for the MVP, and we ‘d require somebody in fact ready to keep those considering that I do not run Linux on my G5 or my POWER6 and I do not run any of my OpenPOWER systems huge. While we invite spots for them, they will not hold up main assistance for POWER9 little-endian, which is presently the only “tier 1” platform. I keep in mind parenthetically this need to likewise deal with LE Power10 however as a matter of policy I’m not going to permit any unique assistance for the architecture up until IBM leaves their business rear end and really launches the firmware source code No complimentary work for a chip that isn’t!

You ought to have the ability to construct a JIT-enabled Firefox 86 off of what’s in the Github tree now, however my existing objective is to pull it as much as 91 ESR so that it can be provided as spots versus a steady branch of Firefox. These spots will become part of my continuous future status updates for Firefox on OpenPOWER (yes, you’ll require to develop it yourself, though I’m contemplating establishing a Fedora copr at some time). The next stage will be getting Baseline Compiler passing whatever, which must be mainly done currently since of the existing Baseline Interpreter and Wasm assistance, and after that the last Ion JIT phase, which still requires a great deal of work. We’ll more than likely established a different tree for it so you can assist (ahem). No pledges today however I ‘d like to see the finished JIT reach the Firefox source tree in time for the next ESR, which is Firefox102 That’s more than you can state for Chrome/Chromium, which up until now has actually contradicted OpenPOWER-specific work at all.

Read More

Author: admin