[C++] Meilleur compilateur ?

Avant les performances d’optimisation du compilateur, il faut voir le code, c’est surtout de lui dont dépend la vitesse d’exécution.
Ensuite pour avoir testé beaucoup de compilateurs C différents et comparer leurs performances, je peux dire que globalement le plus rapide c’est MSVC. Dans la plupart des cas il s’en sort mieux que le compilateur Intel C. Je ne parle pas de GCC qui, sur plateforme x86 est plutot médiocre comparé aux 2 autres.
Borland C++ est assez mauvais dans son genre, je pense que même GCC s’en tire mieux ! Par contre il compile très vite effectivement !

C’était pris « LeFossoyeur » comme pseudo ? :slight_smile:

faut pas exagérer, ça ne fait que deux mois :slight_smile:

Ah oui désolé je n’avais pas vu qu’il s’agissait d’un assez vieux topic.
Il était encore en première page et le titre du topic m’a plu ^^

Oh il est pas si vieux que ça (je t’assure, quand on voit remonter des topics de 2003/2004, là par contre, c’est plus rigolo). D’autant que ton avis peut etre interessant. J’aimerai bien que tu développes un peu, notamment sur les histoires de GCC / Borland, et la médiocrité que tu leur pretes. Tu as des sources là dessus ?

Oh attention quand je dis médiocre, c’est uniquement sur le plan de l’optimisation de code et là encore c’est relativement aux 2 autres qui sont les meilleurs dans le genre.
J’utilise beaucoup GCC car il est porté sur beaucoup de plateforme et c’est tout là son intérêt. Par contre si tu recherches un compilateur performant pour x86 alors GCC n’est pas celui qu’il te faut.
De plus mes tests remontent à quelques années (3/4 ans) et les choses ont peut-être changées depuis…
Je me souviens que le compilateur MSVC générait un très bon code, proche de ce qu’on pouvait faire en assembleur. Intel C n’était pas mauvais non plus mais globlament un peu en dessous.
Pour Borland C++ tout comme GCC, il faut « les aider » (modifier le code pour rendre l’optimisation plus évidente pour le compilateur) pour avoir de bons résultats.

Un exemple dont je me souviens, avec le code suivant (plus ou moins) :

[code]int var;


var = ((var & 0x00FF) << 8) | ((var & 0xFF00) >> 8);[/code]

MSVC était le seul capable de me générer l’instruction

xchg al, ah

Tout les autres compilos me généraient une séquence plus ou moins foireuse…

Ouais, 3-4 ans, ca fait un bail dans ce milieu quand meme.

[quote=“StefD, post:26, topic: 47865”]Un exemple dont je me souviens, avec le code suivant (plus ou moins) :

[code]int var;


var = ((var & 0x00FF) << 8) | ((var & 0xFF00) >> 8);[/code]

MSVC était le seul capable de me générer l’instruction

Tout les autres compilos me généraient une séquence plus ou moins foireuse…[/quote]
Jamais entendu parler du renommage de registres et des fausses dépendances ? Je ne vois pas ce que le code de GCC a de choquant.

Je ne vois pas vraiment le rapport et je n’ai pas cité de code de GCC :slight_smile: j’ai juste montré un exemple de compilation de MSVC.

Sinon oui 3/4 ans c’est beaucoup mais je ne suis pas certain que l’ordre ait changé depuis.