0

下面的代码会在假设 Intel Core i7 时产生分支错误预测惩罚吗?

for(i = 0, count = *ptr; i < count; i++) {
    // do something
}

计数可以是 0、1 或 2。

4

1 回答 1

0

如果 count 随机变化,则无法预测循环条件。如果它以某种模式运行 - 让我们重复说 0、1、2、1 - 它可以在 core2 或 i7 上完美预测。对于其他模式,这取决于。

有关更详细的说明,请参阅“分支预测”一章中的 Intel、AMD 和 VIA CPU 的微架构:汇编程序员和编译器制造商的优化指南。

于 2012-09-23T09:38:19.297 回答