Get the latest tech news
Optimizing the Roc parser/compiler with data-oriented design
While working on the Roc compiler, we regularly dive deep on computer science topics. A recurring theme is speed, both the runtime performance of the code that we generate, as well as the performa ...
Compilers are usually considered as CPU-bound: they transform input (the source code) into output (executables), and are limited by how fast the machine can process the data. These caches make a speed versus size tradeoff: L1 is tiny but loading data stored there is very fast, L3 is significantly bigger but somewhat slower (still faster than main memory though). We made this transformation based on a performance argument, but actually, this representation eliminates the invalid double SpaceAfter case: our code got better!
Or read this on Hacker News