4 comments

[ 4.6 ms ] story [ 26.6 ms ] thread
Great article.

I'd like to see more of stuff like this

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.