16Fermer18
StephC_int13Le 16/04/2006 à 14:00
CoderMan
:
StephC_int13
:
CoderMan :

for(Y=0;Y<240;Y++) par for(Y=239; Y--; )
for(X=0;X<320;X++) par for(X=319; X--; )


En realité le compilateur arrive souvent à optimiser lui même ceci.

Mais c'est pas une mauvaise idée de le faire, en effet, enfin seulement dans la inner loop, pour le reste c'est negligeable.


Justement non, le compilateur ne sais pas interpréter si le code dans le for peut être utilisé à l'envers, c'est a dire en diminuant la variable X ou Y alors que celle ci est à la base incrémenté.


Sisi, si les compteur de boucle ne sont pas utilisés dans la boucle, "le compilo" sait compter à l'envers.

Je l'ai verifié en analysant du code generé, il sait d'ailleurs faire des tas de trucs tordus mais manque souvent de bon sens, helas.

Cela dit, quand on dit "le compilo" c'est oublier de tenir compte qu'il en existe pas mal, et que les params de compilation peuvent changer le resultat.

Donc, certains compilos, dans certaines conditions, savent faire ce genre d'optimisation, donc le faire à la main c'est s'assurer que ce sera fait tout le temps.

De manière generale, il ne faut jamais faire une confiance aveugle a un compilateur, il faut aller verifier soit même le resultat.