• [^] # Re: TCC ?

    Posté par . En réponse à la dépêche LLVM 3.3 et Clang 3.3. Évalué à 5.

    Un compilateur fait plus que transformer ton code C en code machine.
    Il fait des optimisations, il ajoute des informations de debug, il gère plusieurs architectures cibles, il gère différentes normes en entrée…

    Le critère code produit plus petit peut-être un critère, mais ce n’est pas le seul, et c’est rarement un gage de rapidité du code produit. Un code plus long pourra être exécuté plus rapidement qu’un code plus court. Ceci pour plusieurs raison :

    • prefetch mémoire
    • prédiction de branchement cassé
    • utilisation des FPUs, des instructions SSE (sur x86) pour démultiplier les boucles, voir démultiplier les boucles en multiples fil d’exécution.

    Utiliser plusieurs compilateurs permet surtout de trouver des bugs d’implémentation sur certains cas limite ou non décris dans la norme.