Sur un int il n'y aura aucun1 impact. Les compilateurs moderne se débrouille très bien pour savoir quand le faire au mieux. Il y a peu être un impact avec une copie de registre si vraiment les deux valeurs sont utiles. Mais généralement, c'est du a++ dans un for, while sans besoin de la valeur initiale. On peut avoir b=a++ mais là, le compilo va d'abord copier puis incrémenter. Pareil pour les expression du type c=a + b++ où on va faire le add regA, regB (le résultat est stocké dans regA) puis inc regB. Le seul cas que je vois c'est c=a++ + b je ne sais pas si le compilateur fait jouer la commutativité pour gagner un cycle... je ne suis pas sûr de la pertinence de se genre d'optimisation.
enfin, vraiment mineur avec les compilateurs modernes. Si tu en es à gratter au cycle près, c'est qu'il y a un problème de conception générale du programme àmha. ↩
[^] # Re: Un code d'un langage que l'on ne connaît pas ne peut pas servir pour un bench!
Posté par Anthony Jaguenaud . En réponse au journal Quand Pythran fait tourner du Python plus vite que du C++, c'est que.... Évalué à 4.
Sur un
intil n'y aura aucun 1 impact. Les compilateurs moderne se débrouille très bien pour savoir quand le faire au mieux. Il y a peu être un impact avec une copie de registre si vraiment les deux valeurs sont utiles. Mais généralement, c'est dua++dans unfor,whilesans besoin de la valeur initiale. On peut avoirb=a++mais là, le compilo va d'abord copier puis incrémenter. Pareil pour les expression du typec=a + b++où on va faire leadd regA, regB(le résultat est stocké dans regA) puisinc regB. Le seul cas que je vois c'estc=a++ + bje ne sais pas si le compilateur fait jouer la commutativité pour gagner un cycle... je ne suis pas sûr de la pertinence de se genre d'optimisation.enfin, vraiment mineur avec les compilateurs modernes. Si tu en es à gratter au cycle près, c'est qu'il y a un problème de conception générale du programme àmha. ↩