TLDR Dev · MISCELLANEOUS

A CATALOG OF SIDE EFFECTS

bernsteinbear.com18 min read

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.