4 ms·
I'll add to mcbit's excellent description that there's also advantages in verification. Passes on a simple, intermediate language can more easily be equivalence
by nickpsecurity 9y ago
I'll add to mcbit's excellent description that there's also advantages in verification. Passes on a simple, intermediate language can more easily be equivalence-checked by symbolic (eg KLEE) or formal (eg VeLLVM) methods to ensure the transformations didn't break the program somehow. So, you get piles of people contributing optimizations plus potential improvements in verifying they work.
https://klee.github.io/ https://klee.github.io/
http://www.pgbovine.net/PhD-memoir/ucklee-cav-2011.pdf http://www.pgbovine.net/PhD-memoir/ucklee-cav-2011.pdf
https://www.cis.upenn.edu/~stevez/vellvm/ https://www.cis.upenn.edu/~stevez/vellvm/