分岐予測ミスによる投機実行ペナルティを減らすために使う.
プログラムのアルゴリズムには影響を与えないため,ソースを読む際には無視して良い.
// Example
- int i = 0;
- while (1) {
- i++;
- if (unlikely(i > 100))
- break;
- }
if ( unlikely(i > 100) )
が成り立つのは,101回の比較の中で1回のみである. よって,この場合はunlikelyがあった方がコンパイラは 最適化されたコードを生成する.はず.
// Reference
likely()-linux2.6 - LinuxKernelHackJapan
0 件のコメント:
コメントを投稿