LLVM 2.4 : le compilateur qui fait plus

Posté par  . Modéré par baud123.
Étiquettes :
24
12
nov.
2008
Technologie
La version 2.4 de la suite LLVM est sortie le 9 novembre.

LLVM est l'acronyme de Low Level Virtual Machine, mais c'est aussi :
  • un compilateur, avec des interfaces pour C, C++ au travers du projet CLang et du port des analyseurs de code C, C++ de GCC. D'autres langages sont également pris en charge.
  • un framework de compilateur qui permet d'ajouter simplement des nouveaux langages ou des nouvelles architectures matérielles.
  • un générateur de code embarquable pour la compilation à la volée (JIT).
  • une stratégie de compilation conçue pour autoriser des optimisations pendant toute la durée de vie d'un programme, c'est à dire à la compilation, pendant l'édition de lien, pendant l'exécution, et par profilage après l'exécution.
  • un jeu d'instruction virtuel, la représentation intermédiaire (IR). Celle-ci est accessible sous forme textuelle (c'est l'assembleur LLVM) ou binaire (c'est le bytecode LLVM). C'est cette représentation intermédiaire qui permet les optimisations.
La version 2.4 de LLVM apporte son lot de corrections de bogues, des temps de compilations réduits en utilisant -O0, des améliorations sur la génération de code, une nouvelle architecture cible (PIC16), de nouvelles possibilités pour la représentation intermédiaire, et de nombreuses autres améliorations et ajouts.

LLVM est le seul concurrent sérieux et libre de GCC GNU Compiler Collection. Il se distingue par sa conception très modulaire et sa simplicité d'utilisation. Cela se reflète dans son API et sa documentation abondante. Il existe même un tutoriel décrivant l'implémentation d'un petit langage en utilisant LLVM !
Évidemment, LLVM propose beaucoup moins de langages et d'architectures que GCC, mais il rattrape son retard et est déjà une alternative tout à fait valable à GCC en utilisant LLVM-GCC.

On peut essayer LLVM sans trop d'effort en le téléchargeant avec l'interface llvm-gcc. Vous pourrez ainsi compiler vos programmes favoris en utilisant la commande llvm-gcc de la même façon que vous utilisez gcc.

Il convient également de citer 2 projets annexes à LLVM, et qui évoluent avec celui-ci :
  • CLang est un projet dont le but est de fournir des interfaces C, C++ et Objective C pour LLVM qui soient de meilleure qualité que ce qui existe actuellement (les parseurs de GCC).
  • VMKit est une implémentation de la JVM et de la CLI. Il transforme le bytecode java et MSIL en représentation intermédiaire LLVM puis effectue les optimisations fournies par LLVM.
Enfin, signalons que des vidéos et présentations de la rencontre annuelle des développeurs de LLVM du 2 août 2008 sont disponibles.

Journal Python et les décideurs

Posté par  .
Étiquettes : aucune
0
20
nov.
2007
Bonjour à tous,

je suis actuellement en train de pousser dans ma boite pour pouvoir développer en Python (au lieu de Java).
Les bonnes raisons pour utiliser Python sont:
* c'est simple
* c'est rapide à développer
* c'est flexible
* c'est vraiment simple...
* j'aime bien Python

Les deux gros obstacles que je rencontre dans mon argumentation sont:
* java saymieux (sans arguments c'est plus facile)
* Python c'est pas fiable puisque c'est dynamique
* on trouve facilement des (…)

Journal PyQt, QtJambi, et les autres

Posté par  .
Étiquettes : aucune
0
12
oct.
2007
Bonjour à tous,
dans le cadre de mon travail, nous souhaitons réaliser un logiciel de paramétrage de nos installations électroniques. Le but est de faire une interface graphique qui présente l'état de fonctionnement de nos installations et permette quelques réglages simples (avec très peu d'algorithmique). Évidemment, mon patron n'a rien contre une solution à base de logiciels libres.

Les points clés pour cette application sont:
* facilité de maintenance
* fiabilité
* pérennité
* design très personnalisé

L'heure est aujourd'hui (…)

Journal Un langage pour les nuls? Le langage D!

Posté par  .
Étiquettes : aucune
0
2
juil.
2007
Bonjour à tous,
je suis plutôt fan de Python d'habitude, mais récemment, j'ai eu besoin d'écrire une DLL pour un logiciel propriétaire existant (pour y intégrer une description des produits commercialisés par l'entreprise dans laquelle je bosse) il a donc fallu renoncer à Python...

J'ai d'abord commencé à coder en C++ puisque c'est ce qui est utilisé couramment pour ce genre de choses. Evidemment, n'étant pas développeur, j'ai galéré comme un malade... Entre les problèmes de librairies, les problèmes de (…)

Journal Connaissez-vous ASCIIMathML?

Posté par  .
Étiquettes : aucune
0
14
déc.
2006
Vous connaissez peut-être les problèmes que l'on peut rencontrer lorsque l'on souhaite afficher des formules mathématiques sur une page web. En fait, deux approches sont possibles pour cela:
- soit on converti les formules en images.
- soit on écrit les formules en utilisant la formulation MathML. Il faut alors utiliser un navigateur web supportant MathML pour pouvoir afficher la page correctement.

L'inconvénient de MathML, c'est que c'est difficile à écrire directement dans une page web. La solution proposée par (…)

Journal Question suicidaire

Posté par  .
Étiquettes :
0
12
déc.
2006
Note: Ceci est un acte désespéré dont le seul but est de comprendre l'incomprennable.

Voilà, après avoir bien regardé les débats à propos de l'installation des drivers non libres dans ubuntu, j'en suis venu à me dire qu'il ne faut pas installer les drivers proprio parce que sinon, c'est la porte ouverte à tous les abus, et puis parce que ça ne va pas inciter les fabricants de matos à donner leur spécifications.
J'ai fini par comprendre pourquoi tout le (…)