LLVM et CLang sont arrivés en version 5.0

Par:
fredericmazue

mar, 12/09/2017 - 12:38

L'infrastructure de compilateur LLVM et son frontal Clang viennent de sortir en version 5.0. Un grand saut de numéro de version, depuis la mouture 4.0.1 qui se justifie par de grosses avancées.

En plus du support des processeurs AMD Ryzen et Intel Goldmont dans la famille x86, LLVM 5.0 apporte de nombreuses nouveautés pour les architectures ARM, AVR, MIPS, PowerPC 3.0 ainsi que pour les GPU AMD Radeon Vega. Les instructions ARMv8.1, 8.2 et 8.3 ont été ajoutées au compilateur, et, globalement, des optimisations sur ARM doivent avoir un impact important sur les performances.

En ce qui concerne le frontal CLang (frontal pour les langages C/C++/Objective-C), le support du standard C++17 est maintenant complet.

Très intéressant également, le support des coroutines C++. Pour mémoire, alors que la sortie d'une routine met fin à cette routine, la sortie de la coroutine peut être le résultat d'une suspension de son traitement jusqu'à ce qu'il lui soit signalé de reprendre son cours. La suspension de la coroutine et la reprise de son cours peuvent s'accompagner d'une transmission de données. Les coroutines ont de nombreuses applications, notamment en programmation asynchrone. Les coroutines ne font par encore partie du standard C++, étant encore au stade expérimental.

De ce fait, leur support dans CLang 5.0 doit être activé explicitement par le commutateur -fcoroutines-ts -stdlib=libc++

Le support d'OpenCL C est également amélioré par la correction de nombreux bugs.