Kevin KoflerLe 10/10/2003 à 14:01
L'optimisation-vitesse copie le test de fin de boucle à 2 endroits, au début et à la fin. Donc, pour:
while(cond) {
...
}
plutôt que:
goto test;
next:
...
test: if (cond) goto next;
on a en optimisation-vitesse:
if (!cond) goto end;
next:
...
test: if (cond) goto next;
end:
Cela augmente généralement la taille (le if est dupliqué), mais dans certains cas peut permettre des optimisations suivantes qui entre autre diminuent la taille. Si tu me trouves une condition sous laquelle copier le test de fin de boucle donne toujours un gain de taille, je veux bien mettre du code pour toujours faire la copie dans ce cas (et en -Os seulement dans ce cas).