Those aren’t the optimizations I’m talking about. That’s not even how JSC optimizes overflow checks.
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.
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.