Personnalisation de la prédiction de branchement avec GCC
Question : Peut-on demander à GCC de forcer les résultats de prédiction de branchement dans des directions spécifiées pour Architectures Intel ?
Réponse :
Oui, GCC propose la fonction __builtin_expect pour guider sa génération de code pour la prédiction de branche. Cette fonction prend deux arguments : exp (l'expression de condition) et c (le résultat attendu).
Pour demander à GCC de prédire systématiquement un certain chemin de branche comme étant vrai, utilisez la syntaxe suivante :
<code class="c">if (__builtin_expect(exp, 1))</code>
Par exemple, dans l'extrait de code fourni, vous pouvez ajouter :
<code class="c">if (__builtin_expect(normal, 1))</code>
De plus, pour simplifier la syntaxe, vous pouvez définir des macros personnalisées :
<code class="c">#define likely(x) __builtin_expect (!!(x), 1) #define unlikely(x) __builtin_expect (!!(x), 0)</code>
Considérations :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!