编译器和处理器优化如何加速代码执行?

How compiler and processor optimization works to speed up code execution?

Linux Kernel Development (3rd Edition) 中,内核同步方法、排序和障碍。有个例子:

我对这本书中的陈述感到困惑:

Again, without memory barriers, it would be possible for b to be set to pp before pp was set to p.

那么,作者的意思是如果没有read_barrier_depends()b = *pp会先于pp = p执行?这怎么可能?

我对你的问题很感兴趣,所以搜索了更长的时间。我在内核列表中找到了 read_barrier_depends 功能的 post,并做了一些解释:

https://lwn.net/Articles/5159/