URL: https://linuxfr.org/users/mat_/journaux/test-de-llvm Title: test de llvm Authors: M Date: 2009年03月15日T16:04:03+01:00 Tags: Score: 15 Après la nouvelle version de llvm, je me suis dit que ça pourrait être sympa de la tester. Comme au moment du test, la 2.5 n'était pas dispo sur ma distrib et que clang n'est pas disponible, je passe par l'étape de compilation. Je tente d'utiliser la 2.5, mais il n'y a pas de version stable de clang, et il faut forcement utiliser la version de dev (subversion). La compilation se passe bien, je décide de faire un test sur ffmepg. Et la les problèmes commencent : le script de build arrive bien a utiliser ccc le frontend clang, il y a juste un mineur soucis avec la génération des dépendances qui n'est pas supporté par clang. La compilation se passe bien, jusqu'à tomber sur un assert de llvm [1]. Le bug est signalé et corrigé assez vite. La compilation se poursuit jusqu'à tomber sur un problème de compilation avec l'asm-inline [2]. Le problème est signalé et en attendant sa résolution, je modifie les sources pour le contourner. Ça y est, j'ai réussi a compiler ffmpeg avec llvm/clang. Je lance les tests de régression. Et un test échoue lamentablement. Après analyse le code est mal compilé [3]. Je me dis que j'ai peut être été trop ambitieux de vouloir tester clang, donc je teste llvm-gcc. Je le compile pour être sur la même base que clang. Et a la compilation de ffmpeg, llvm-gcc crash [4]. Je reviens à [3] et je constate que le bug n'apparait pas en -O0, je décide de compiler ffmpeg en -O0 (en plus ça me permettra d'avoir les symboles de debug, chose que llvm ne sait pas faire en -Ox [5]). Mais en -O0 tout le code ne compile pas [6]. En désactivant les optimisations assembleur j'arrive enfin à compiler un ffmpeg (lent) qui passe les tests de régression... Le tout, plus le fait que llvm ne suit pas forcement l'ABI linux [7], m'a vraiment déçu. Je pensais que llvm était dans une version bien plus avancée et stable. [1] [http://llvm.org/bugs/show_bug.cgi?id=3759](http://llvm.org/bugs/show_bug.cgi?id=3759) [2] [http://llvm.org/bugs/show_bug.cgi?id=3788](http://llvm.org/bugs/show_bug.cgi?id=3788) [3] [http://llvm.org/bugs/show_bug.cgi?id=3789](http://llvm.org/bugs/show_bug.cgi?id=3789) [4] [http://llvm.org/bugs/show_bug.cgi?id=3787](http://llvm.org/bugs/show_bug.cgi?id=3787) [5] [http://llvm.org/bugs/show_bug.cgi?id=1710](http://llvm.org/bugs/show_bug.cgi?id=1710) [6] [http://llvm.org/bugs/show_bug.cgi?id=3800](http://llvm.org/bugs/show_bug.cgi?id=3800) [7] [http://llvm.org/bugs/show_bug.cgi?id=3731](http://llvm.org/bugs/show_bug.cgi?id=3731) [http://llvm.org/bugs/show_bug.cgi?id=783](http://llvm.org/bugs/show_bug.cgi?id=783) [http://llvm.org/bugs/show_bug.cgi?id=2823](http://llvm.org/bugs/show_bug.cgi?id=2823) [http://llvm.org/bugs/show_bug.cgi?id=2390](http://llvm.org/bugs/show_bug.cgi?id=2390)

AltStyle によって変換されたページ (->オリジナル) /