TLDR Dev · MISCELLANEOUS
A CATALOG OF SIDE EFFECTS
Summary from the TLDR Dev newsletter
This blog post discusses different approaches compilers use to track the effects of Intermediate Representation (IR) instructions, focusing on how these effects influence optimizations like instruction re-ordering and dead code elimination. There are two main representation methods: bitsets, as used in Cinder and other compilers like HHVM and ART, and heap range lists, as implemented in JavaScriptCore. Bitsets are compact and precise, while range lists offer more long-term flexibility.