GCC を使用した分岐予測のカスタマイズ
質問: 分岐予測の結果を指定された方向に強制するように GCC に指示できますか? Intel アーキテクチャ?
答え:
はい、GCC は分岐予測のためのコード生成をガイドする __builtin_expect 関数を提供します。この関数は、exp (条件式) と c (期待される結果) の 2 つの引数を取ります。
特定の分岐パスを一貫して true として予測するように GCC に指示するには、次の構文を使用します。
<code class="c">if (__builtin_expect(exp, 1))</code>
たとえば、提供されたコード スニペットに次の内容を追加できます。
<code class="c">if (__builtin_expect(normal, 1))</code>
さらに、構文を簡素化するために、カスタム マクロを定義できます。
<code class="c">#define likely(x) __builtin_expect (!!(x), 1) #define unlikely(x) __builtin_expect (!!(x), 0)</code>
考慮事項:
以上がGCC はインテル アーキテクチャで分岐予測の結果を強制できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。