|
|
|
|
|
by deathanatos
127 days 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. |
|