I’m talking about:
- abstract interpretation using a streamlined version of the octagon domain.
- instruction selection and register allocation hacks to emit the best possible code for checked math. I don’t think llvm has parity with B3 here, particularly in cases where inputs to the math are live on the failing case.
- probably other stuff. IRs that start out with checked math tend to include checked math reasoning in more optimizations.
Do you have any links/source code where I can read up about this (possibly in the context of compilers)? I've never heard of the term octagon domain before.
https://www.cs.utexas.edu/~tdillig/cs395/octagon.pdf
https://www-apr.lip6.fr/~mine/publi/article-mine-HOSC06.pdf
If you don't know about abstract interpretation, start at https://en.wikipedia.org/wiki/Data-flow_analysis and https://en.wikipedia.org/wiki/Abstract_interpretation
So LLVM could do runtime profiling if it wanted. But I suspect that in the majority of the cases the cost of the profiling would be worse than the potential gains.