what does this mean? "In LLVM IR, much like in Rust but unlike in C/C++, individual loads and stores are volatile (i.e., have compiler-invisible side-effects)."
In C and C++, volatile is a qualifier for a type. You then use that type like any other.
In Rust, there is no volatile types. There are two functions, read_volatile and write_volatile, on pointers.
Rust’s API is basically identical to the intrinsics, whereas C and C++‘s are not. This plays out with stuff like the drama around volatile compound operators being deprecated.
https://git.envs.net/mpech/pil21