对于 Intel 体系结构,是否有一种方法可以指示 GCC 编译器生成代码,这些代码总是强制在我的代码中以特定的方式进行分支预测?英特尔的硬件支持这个吗?其他编译器或硬件如何?
我会在 C + + 代码中使用这种方法,在这种情况下,我知道我希望快速运行,并且不关心其他分支需要执行时的慢速,即使它最近已经执行了该分支。
for (;;) {
if (normal) { // How to tell compiler to always branch predict true value?
doSomethingNormal();
} else {
exceptionalCase();
}
}
作为 Evdzhan Mustafa 的后续问题,这个提示是否可以在处理器第一次遇到指令时指定一个提示,所有后续的分支预测都能正常工作?