Thibaut (./61) :
Ca signifie que le code ne faisait rien à l'origine.
Ou que tout le code a pu être sorti de la boucle.
Dis-nous quelle est la proportion de programmes qui comportent des boucles inutiles ?
L'inlining, tu connais?
static inline void increment(int *foo)
{
(*foo)++;
}
void _main(void)
{
int i, j=0;
for (i=0; i<100; i++) increment(&j);
printf("%d",j);
}
Ce code est optimisé par GCC en:
__main:
move.w #100,-(%sp)
pea .LC0
jbsr printf
addq.l #6,%sp
rts
Rappelle-nous quand GTC sait faire ça.

L'idée est que l'utilisateur de la fonction
increment n'a pas à savoir ce qu'elle fait exactement, imagine que ça s'appelle
compte_machinchose, qu'il suffit d'incrémenter
j actuellement, mais que tu veux garder la possibilité de logguer ce que tu comptes dans une base de données un jour. En attendant, tu ne veux pas que ton programme fasse tourner des boucles pour rien.
Mais GTC est développé courageusement par une seule personne
GTC est également basé sur un compilateur existant, c'est juste que ce compilateur est loin de la qualité de GCC.