对于英特尔架构,有没有一种方法可以指示GCC编译器在我的代码中始终强制分支预测以特定方式进行? 英特尔硬件是否支持这样做?其他编译器或硬件呢?
我会在C ++代码中使用它,在那里我知道我希望快速运行的情况,并且不在意其他分支需要被采取时的减速,即使最近已经采取了该分支。
for (;;) {
if (normal) { // How to tell compiler to always branch predict true value?
doSomethingNormal();
} else {
exceptionalCase();
}
}
作为对 Evdzhan Mustafa 的后续问题,提示能否仅为处理器第一次遇到指令指定提示,所有后续的分支预测都正常工作?作为对 Evdzhan Mustafa 的跟进提问,提示是否只能为处理器第一次遇到该指令时指定提示,而所有后续的分支预测则正常工作?