Bibliothèque permettant de compiler un langage de haut niveau vers du code machine, tout en ciblant plusieurs architectures puisqu’il passe par un langage intermédiaire (LLVM-IR), semblable à l’assembleur, mais indépendant du type de machine, et qui est optimisé par le compilateur.
News:
- Juin 2016: LLVM lance un nouveau projet “parallel-lib”, concurrent de compiler-rt et basé sur StreamExecutor de Google. Librairie permettant de lancer des calculs sur des processeurs graphiques et d’autres types d’accélérateurs, et inclure OpenMP. Servira notamment dans le cadre de Tensorflow.
Outils utilisant LLVM:
- Emscripten: pour compiler du code C/C++ en Javascript (voir pour UE4/HTML5)
- Clang: Compilateur C/C++, objective‑C, Ada, concurrent de gcc.
- Le framework CUDA pour compiler le langage d’accès aux GPUs d’Nvidia.
Sites et ressources:
- Site officiel et page wikipédia.
- J’ai acheté les livres “Getting Started with LLVM Core Libraries” et “LLVM Essentials”. Je reporterai quelques notes + tard.
- Un article dans GNU/Linux Magazine n°201 donne un exemple d’intégration de LLVM dans un programme LISP afin d’insérer une fonction compile capable de compiler avec LLVM n’importe quelle fonction LISP, et ce à la volée. Code source dispo ici.