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

Compiler construction 编译器和处理器优化如何加速代码执行?,compiler-construction,processor,instruction-reordering,Compiler Construction,Processor,Instruction Reordering,内核同步方法、顺序和障碍。有一个例子: 我对这本书中的陈述感到困惑: 同样,如果没有记忆障碍,b也可以被设置 在pp设置为p之前设置为pp 那么,作者的意思是如果没有read\u barrier\u dependens(),b=*pp将在pp=p之前执行吗?这怎么可能呢?我对你的问题很感兴趣,所以我搜索了更长的时间。我发现read_barrier_的帖子取决于内核列表的功能,并给出了一些解释: 最有可能的意思是在pp设置为p之前将b设置为*p,而p可能会在这两者之间更改其值。那么,读屏障依赖(

内核同步方法、顺序和障碍。有一个例子:

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

同样,如果没有记忆障碍,b也可以被设置 在pp设置为p之前设置为pp


那么,作者的意思是如果没有
read\u barrier\u dependens()
b=*pp
将在
pp=p
之前执行吗?这怎么可能呢?

我对你的问题很感兴趣,所以我搜索了更长的时间。我发现read_barrier_的帖子取决于内核列表的功能,并给出了一些解释:


最有可能的意思是在
pp设置为p
之前将
b设置为*p
,而
p
可能会在这两者之间更改其值。那么,
读屏障依赖()
做什么呢?它告诉编译器不要对前后的内存读取进行重新排序。例如,必须首先发出之前的所有读取和写入,然后才发出屏障之后的所有读取。1、
之前的所有读取和写入
之前的所有读取
?2、
read\u barrier\u依赖于
仅影响编译器,但不影响处理器重新排序?