Julian, Laure, Matthieu, 13 mars 2019. * Base de tests LLVM : on ne l'utilise plus telle quelle, mais on passe par le script Python maison de benchmarking. Arguments dans python-script-vs-llvm-test-suite.md. * Problème : comment récupérer les bonnes commandes / bonnes options pour compiler chaque test depuis le script Python (les infos sont dans le CMakeLists.txt). Solution : compilation database = https://clang.llvm.org/docs/JSONCompilationDatabase.html https://cmake.org/cmake/help/v3.5/variable/CMAKE_EXPORT_COMPILE_COMMANDS.html Version courte : ajouter set(CMAKE_EXPORT_COMPILE_COMMANDS 1) dans llvm/projects/test-suite/CMakeLists.txt puis parser le fichier test-suite-build/compile_commands.json. * Bizarerie détectée avec le script : clang -O3 ou clang + opt avec toutes les options de -O3 ne donne pas les mêmes perfs (clang -O3 produit du code deux fois plus rapides). Hypothèse : "opt avec les options correspondantes à -O3" ne fait que les optims du "middle-end", sur l'IR, mais il y a d'autres optims dans le backend (exemple : ordonnacement d'intructions, alloc de registres, ...). llc (le backend) a une option -O3 ... A priori clang -O3 == opt -O3 + llc -O3. TODO pour la suite : * Utiliser compile_commands.json dans le script python de benchmarking. * Commencer à regarder les impacts des passes les unes sur les autres, par exemple : dead code elimination, propagation de constantes, analyse d'intervalle, analyses de pointeurs. Cf. Thèse de Maroua Maalej. https://tel.archives-ouvertes.fr/tel-01626398v2/ Dates : * Mercredi 27 mars, 9h30, LIP : CASH reading group, avec Serge Guelton. * Jeudi 21 mars, 9h, LIP (Amphi G) : Séminaire LSC * Vendredi 22 mars, 10h30, Nautibus : réunion Julian + Laure + Matthieu.