Skip to main content
 首页 » 编程设计

optimization之在 Linux 内核中使用可能/不太可能作为返回参数

2025年05月04日44shanyou

只是在linux内核中看到这个结构,我无法理解它是什么意思。

110         return unlikely(sl->sequence != start); 

我知道 likely/ unlikely__builtin_expect 制成此处描述的功能:
http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html

You may use __builtin_expect to provide the compiler with branch prediction information.



但是对于无条件分支,什么样的分支预测提示是可能的??

请您参考如下方法:

只是在这里猜测,但想象一下该函数是由编译器内联的,并且您在调用代码中有这个:

if (functionUsingUnlikelyForReturn()) { 
   // Do something 
} else { 
   // Do something different 
} 

那么分支预测注意到提示是完全合理的。