Finding bugs in LLVM IR optimisers: programmatically generate small (loop free, no control flow) functions, run your favourite middle end passes, and verify the output is equivalent!
https://blog.regehr.org/archives/1510
(Uses Alive to verify and 4000 CPUs of compute.)
miniblog.
Related Posts
LLVM's lit tool for testing files is the most successful testing DSL I've ever seen. It's used a decent number of projects outside of LLVM.
By contrast I don't see many folks using e.g. Cucumber these days.
Wonderful post from the lead LLVM maintainer reflecting on how the project is run, the design issues in LLVM today, and opportunities to make it better:
Bril is a cute intermediate language for teaching (think simplified LLVM IR): https://www.cs.cornell.edu/~asampson/blog/bril.html
The idea of providing a standard JSON format to help students write basic passes is really elegant.