NEW 174848
WebAssembly: add a single-block compiler
https://bugs.webkit.org/show_bug.cgi?id=174848
Summary WebAssembly: add a single-block compiler
JF Bastien
Reported 2017-07-25 17:46:32 PDT
BBQ and OMG are good at what they do, but they could do with some help from a single-block compiler because often we see fairly small functions that have zero loops, and very little branching that's well-structured. A single-block compiler could be really fast yet generate really good code, sometimes tail-duplicating because WebAssembly code creates diamonds with little in their successor. No need to look at loops, no phis to put back together again, just big blocks with tiny tails. The validator is a good place to assess the structure of code, and then choose whether to go BBQ or single-block (as I originally did in #174818). No need to tier that code afterwards! This came from an IRL discussion with Fil about #174818 and the bunch of tier-check code in small functions. The only thing that's missing is a cute name. Oh, and coding it I guess.
Attachments
Saam Barati
Comment 1 2017-07-25 18:19:55 PDT
FWIW, I'd be a lot more interested in us investigating these things before a single block compiler: - A Web Assembly interpreter - A template JIT - Lazy compilation - Making O2 compile faster. Mozilla's Wasm implementation has showed us this is clearly possible. or some combination of the combination of above.
Note You need to log in before you can comment on or make changes to this bug.