> car, pour ce que j'en comprend, le branchement prédictif se fait sur
> si (condition)
> alors ...
> Le code présenté serait donc optimisé pour le cas où le tracing est activé.
En fait, c'est le but de la macro unlikely(). Elle indique au compilateur que la condition est peu probable, et donc qu'il doit optimiser en conséquence. Du coup, gcc considère que la branche par défaut est le 'else', et la branche d'exception est le if() lui-même (si je puis dire).
[^] # Re: Traçage et performances
Posté par ymorin . En réponse à la dépêche Sortie de la version 2.6.37 du noyau Linux. Évalué à 7.
> si (condition)
> alors ...
> Le code présenté serait donc optimisé pour le cas où le tracing est activé.
En fait, c'est le but de la macro unlikely(). Elle indique au compilateur que la condition est peu probable, et donc qu'il doit optimiser en conséquence. Du coup, gcc considère que la branche par défaut est le 'else', et la branche d'exception est le if() lui-même (si je puis dire).