分岐予測ミスによる投機実行ペナルティを減らすために使う.
プログラムのアルゴリズムには影響を与えないため,ソースを読む際には無視して良い.
// 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 件のコメント:
コメントを投稿