IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

LLVM 3.3 disponible avec Clang
La suite d'outils de compilation pour C, C++ et Objective-C apporte un support complet de C++ 11

Le , par Cedric Chevalier

65PARTAGES

3  0 
LLVM la suite d’outils de compilation est disponible dans sa version 3.3. Cette dernière apporte son lot de nouvelles fonctionnalités.

LLVM 3.3 intègre le compilateur Clang 3.3 pour les langages C, C++ et Objective-C, la librairie compiler-rt, le « low-level debugger LLDB », la librairie C++ libc++ et la JVM VMKit qui utilise LLVM pour la compilation statique et JIT (Just In Time).

Cette version se distingue avec ses prédécesseurs par un le support complet de la norme C++ 11. Les ajouts sont entre autres : les attributs C++ 11, l'héritage de constructeurs, la gestion des variables thread_local, les lambda généralisées, l’amélioration des expression constexpr, etc.

Cette mouture ne prend plus en charge le traitement des exceptions pour JIT. Les développeurs qui voudront bénéficier de cette fonctionnalité sont invités à utiliser le MCJIT (Machine Code Just In time).

Puisqu'ils sont désormais obsolètes, les architectures des processeurs Hexagon V2 et Hexagon V3 ne sont plus prises en charge. Seuls les processeurs Hexagon V4 et Hexagon V5 sont supportés par cette nouvelle mouture.

Le support pour l'architecture 64 bits des processeurs ARM est au stade expérimental. Cependant, d'après l'équipe de développement, Clang devrait compiler avec succès du code respectant les standards C99 et C++03.

Pour l'architecture PowerPC, on note l'ajout de l'analyseur syntaxique pour le langage assembleur. On note en plus l'amélioration des performances pour les opérations de division à virgule flottante et racine carrée, grâce à l'option -ffast-math. Le support du stockage local des « threads » est également de la partie, cependant il n'est disponible que pour les architectures 64 bits uniquement.

Grace à la fonctionnalité « R600 backend » LLVM prend en charge les GPU d'AMD, pour les puces HD2XXX à HD7XXX.

LLVM est désormais compatible avec les architectures basées sur le SystemZ d'IBM. Cependant ce support est restreint pour la plateforme GNU/Linux.

Le débogueur LLDB (Low level Debugger) subit des changements notables pour la plateforme Linux. On peut désormais ajouter des « watchpoints ». L'intégration de Vim pour les commandes LLDB s'est faite à l'aide d'un nouveau plugin, et on note en plus, une amélioration du support des registres y compris ceux vectoriels.

Télécharger LLVM 3.3

Source : LLVM

Et vous ?

Que pensez vous de cette nouvelle mouture de LLVM ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de grim7reaper
Membre éclairé https://www.developpez.com
Le 20/06/2013 à 4:21
Il y a aussi eu une nette augmentation de l’efficacité du code généré par rapport à la 3.2.
En partie dû aux améliorations au niveau auto-vectorisation (cf. ici pour un peu plus d’explications sur ce point).
0  0 
Avatar de Kaluza
Membre habitué https://www.developpez.com
Le 20/06/2013 à 15:03
Personnellement j'ai installé clang depuis peu comme complément à g++ sous Linux. Avec la version 3.2, j'avais pas mal de code métaprog hautement templaté avec également pas mal de SFINAE/enable_if qui ne compilait pas. Du coup je m'en servais surtout pour débugguer mon code, car les messages d'erreurs de compilation de clang sont quand même merveilleux. J'espère que les problèmes de métaprog de la version 3.2 ont été corrigés dans cette nouvelle mouture
0  0