| ▲ | pizlonator 8 hours ago | |
> I think we may be playing in slightly different spaces: unlike a JS JIT My B3 compiler is a direct equivalent of Cranelift. Sure, I've also written JS JITs. B3 was initially the backend of a JS JIT, but now does other things too. And I've done a lot of LLVM work. Generally, it's unwise to assume you know what another person has or hasn't done. I'm not making that assumption about you. (I don't even know you, and that doesn't matter for the purposes of this discussion.) > single fixpoint loop for all of the core rewrites is what we wanted, and what the sea-of-nodes-with-CFG gets us It just feels so constraining. Eventually you'll want optimizations that can't be expressed with egraphs, and I'm not convinced that your approach conserves code or complexity even if you are sticking to egraphable optimizations. | ||
| ▲ | cfallin 8 hours ago | parent [-] | |
OK, cool. I was assuming "escape analysis and type inference" implied a JS JIT -- straight from your comment, no other assumptions intended. But you've got a lot of interesting experience here and thanks for your thoughts. All the best! | ||