要我做编译器
```
y.load(relaxed); // A
if (x.load(relaxed)) { // B
y.load(relaxed); // C
}
```
我就会把if里的load,也就是C给优化掉。不一定对,欢迎拍砖。
编译器不是恶意乱排序,但是你得给编译器一定的乱排序的自由,而且在这个规则内你不能blame编译器,和cpu。
【 在 libgcc 的大作中提到: 】
: 那么问题来了,就像我之前说的,如果if里面有十几个load,难道编译器能优化成把这十几个都load一遍如果不行再还原回去?这不是很蠢吗
: 还是编译器自己智能判断一下值得不值得?
--
FROM 75.31.75.*