Hacker News new | ask | show | jobs
by linguistics__ 1260 days ago
JIT compilation is done lazily on a per basic block level (so you only JIT blocks you're about to run). It keeps track of statically known information for specific basic-blocks and specializes different versions of basic blocks based on this. So if you're coming from an if-statement checking the type of X, into a new basic block, then the JIT specializes the block based on the knowledge that X indeed has said type (so it can specialize operations or skip future checks).

I can highly recommend watching their presentation on it: https://www.youtube.com/watch?v=PFb5wNj2ztM

1 comments

Thank you, they explain the difference from tracing JITs starting from 11:00