分岐予測のヒントを実行するポータブルな方法はありますか?次の例を考えてみましょう。
if (unlikely_condition) {
/* ..A.. */
} else {
/* ..B.. */
}
これは行うことと何か違いがありますか?
if (!unlikely_condition) {
/* ..B.. */
} else {
/* ..A.. */
}
または、コンパイラ固有のヒントを使用する唯一の方法ですか?(例:GCCの__builtin_expect)
コンパイラーif
は、条件の順序に基づいて条件を異なる方法で処理しますか?