[gull] cours C++

Leopoldo Ghielmetti leopoldo.ghielmetti at a3.epfl.ch
Tue Mar 7 16:37:20 CET 2006


J'espère qu'un test aussi simple soit fait par "TOUS" les optimiseurs.
En tout cas pour le moment je n'ai jamais eu de problèmes de ce type. Il
se peut effectivement que si quelqu'un utilise encore un compilateur
très vieux il peut rencontrer ce genre de problèmes. De toute façon la
perte de performances engendrée par une éventuelle mauvaise optimisation
est moins dangereuse que celle engendrée par une erreur dans le
programme causé par l'oubli du do{...}while(0).

ciao, Leo

On Mon, 2006-03-06 at 13:35 +0100, Daniel Cordey wrote:
> On Thursday 02 March 2006 13:49, Leopoldo Ghielmetti wrote:
> 
> > Les procedures sont celles qui se comportent comme n'importe quelle
> > fonction C qui ne retourne pas de valeur et je les entoure par
> > do{...}while(0) 
> 
> En etant conscient que si la macro est incluse dans une boucle, un test 
> suplementaire sera effectue a chaque fois + branchement. Suivant les 
> architectures et les compilateurs, les "branch-prediction" peuvent etre assez 
> differents et engendrer des variations de performances qu'il n'est pas facile 
> a expliquer a premiere vue. C'est souvent assez "radical" sur les processeurs 
> avec un long "pipeline". Maintenant, il se peut que l'optimiseur soit assez 
> intelligent pour detecter l'utilisation de la constante '0' dans le test et 
> supprimer la generation de l'encapsulation du bloc. Je sais que pas mal 
> d'optimisation a ce niveau existe dans l'analyse des boucle 'for', mais je ne 
> suis pas pesuade que cela soit aussi le cas dans les do-while. Donc, 
> attention...
> 
> dc
> _______________________________________________
> gull mailing list
> gull at lists.alphanet.ch
> http://lists.alphanet.ch/mailman/listinfo/gull




More information about the gull mailing list