Journal [bookmark] Clang générerait certains binaires plus petits que MSVC en étant ABI-compatible

Posté par . Licence CC by-sa.
Tags :
15
6
mar.
2018

Pour info, Clang serait capable de générer (dans le cas de l'installateur de chromium, à priori) des binaires plus petits tout en étant compatible avec l'ABI de MS.
Ce serait du coup utilisé par Google pour générer lesdits binaires.

À noter, pour accomplir ce fait Clang dépendrais de MSVC, et la compilation est plus lente (à peu près 15%), mais tout ça est expliqué quand le lien quivabien.

PS: par rapport à l'emploi du conditionnel: je n'ai pas assez creusé pour être sûr de tout avoir compris, donc plutôt qu'affirmer avec force une ânerie, je préfère rappeler qu'il vaut mieux prendre des pincettes quand on lis mes propos :)

  • # Clang tout seul

    Posté par . Évalué à 3.

    À noter, pour accomplir ce fait Clang dépendrais de MSVC, et la compilation est plus lente (à peu près 15%), mais tout ça est expliqué quand le lien quivabien.

    En fait, non. C'est bien Clang tout seul qui est utilisé, et sa version clang-cl.exe qui peut remplacer cl.exe présent dans MSVC (avec les mêmes options). Pour l'édition de lien, là encore, on peut utiliser link.exe fourni avec MSVC ou ldd.exe fournit par le projet LLVM.

  • # En fait non le binaire généré est plus gros

    Posté par . Évalué à 4. Dernière modification le 06/03/18 à 21:06.

    Clang générerait certains binaires plus petits que MSVC en étant ABI-compatible

    L'article est plus mitigé (et dit l'inverse dans le cas de la version 64 bits optimisée avec /O2). Par contre, le binaire généré avec clang se compresse mieux que celui généré avec msvc. Du coup, l'installeur résultant est plus petit.

    Le gras est de moi :
    "However, compared to MSVC builds using link-time code generation (LTCG) and profile-guided optimization (PGO) Clang generates larger code in 64-bit for targets that use /O2 but smaller code for targets that use /Os. The installer size comparison suggests Clang's output compresses better."

    La motivation des développeurs n'est pas dans la recherche d'un binaire plus petit ou plus optimisé mais dans le fait d'utiliser le même compilateur sur toutes les plateformes.

    • [^] # Re: En fait non le binaire généré est plus gros

      Posté par . Évalué à 4. Dernière modification le 07/03/18 à 15:53.

      La motivation des développeurs n'est pas dans la recherche d'un binaire plus petit ou plus optimisé mais dans le fait d'utiliser le même compilateur sur toutes les plateformes.

      Si ça avait juste été une question de qui à la plus grosse (enfin, la plus petite) je n'aurai pas posté ça.
      Je pense que ce n'est pas juste de pouvoir utiliser le même compilo sur windows que sur les autres OS le gros point (sinon j'imagine qu'ils auraient juste utilisé GCC ou mingw en fonction de l'OS), mais vraiment d'utiliser Clang lui-même (et ses outils d'analyse et de debug) en gardant une ABI compatible (donc de pouvoir utiliser les libs C++ & co de MS, j'imagine qu'elles doivent avoir des avantages techniques, bien que je ne voies pas lesquels).

      M'enfin, je reconnais que mon bookmark est mal tourné (en plus d'en avoir compris plus que prévu de travers… oups)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.