osg*_*sgx 7 optimization built-in linux-kernel likely-unlikely
只是在linux内核中看到这个结构,我无法得到它的意思.
110 return unlikely(sl->sequence != start);
Run Code Online (Sandbox Code Playgroud)
我知道likely/ unlikely是用__builtin_expect这里描述的功能制作的:http:
//gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
您可以使用__builtin_expect为编译器提供分支预测信息.
但是对于无条件分支,什么样的分支预测提示是可能的?
Jon*_*eet 11
只是在这里猜测,但想象一下编译器内联函数,你在调用代码中有这个:
if (functionUsingUnlikelyForReturn()) {
// Do something
} else {
// Do something different
}
Run Code Online (Sandbox Code Playgroud)
那么分支预测要注意提示是完全合理的.