I'm interested in using Rust for bare-metal embedded development. For that, Rust would need to support volatile loads and stores. In a nutshell: - Volatile loads and stores represent a barrier preventing compiler from reordering them across other volatile operations ([reference](http://llvm.org/docs/LangRef.html#volatile-memory-accesses)). - They're mainly used to represent accesses to I/O memory, where normal compiler assumptions don't hold. C implements them with a pointer attribute. Arguably, semantically it would be a better fit to use an intrinsic function. What should Rust use?