4 ms·
I think if you're in a language that's doing constant-propagation optimizations, you work around that in one of two ways: 1. you drop down to assembly. 2. you
by deathanatos 8mo ago
I think if you're in a language that's doing constant-propagation optimizations, you work around that in one of two ways:
1. you drop down to assembly.
2. you use functions that are purpose built to be sequence points the optimizer won't optimize through. E.g., in Rust, for the case you mention, `read_volatile`.
In either case, this gives the human the same benefit the code is giving the optimizer: an explicit indication that this code that might appear to be doing nothing isn't.