Sally
:
C'est forcément un gain de taille si l'on sait à la compilation si la condition est réalisée ou pas la première fois (autrement dit si c'est une constante), puisqu'on peut la virer. C'est en particulier vrai dans le cas d'une boucle à nombre d'itérations fixe.
Non. Qu'il y ait un saut vers
test ou vers
end ne change rien à la taille. Ce n'est pas ça.
Tu as une idée de pourquoi avec la méthode Pollux on n'obtient pas un dbra en -Os ?
Probablement parce que l'optimisation qui génère les
dbf ne reconnaît pas le code qu'il y a en
-Os.
GCC copie en général toujours les tests des boucles. C'est un patch local TIGCC qui désactive ça en
-Os (mais je ne suis pas celui qui l'a inventé, il a été essayé par certains développeurs de
GCC, mais il a été refusé parce qu'il donne du code mauvais sur certaines plateformes, et comme tu vois, c'est parfois le cas même sur 68k

mais il est très efficace sur
Backgammon, et c'est un gain aussi pour
TI-Chess, et il fait aussi intuitivement la bonne chose, donc je veux le garder).