========================================== Julian, Laure, Matthieu, 18 janvier. LIP ========================================== Suite du script d'analyse de perfs : * Lancement valgrind pour mesurer conso mémoire de la pile. * Mesure de temps d'exécution depuis le C pour ne pas se faire polluer par le coût de fork+exec. Problèmes à résoudre : * Programme qui appelle exit(). Solutions : - ignorer le problème et ne pas traiter les bench contenant exit(). - LD_PRELOAD ou atexit() pour rattraper le exit(), et setjump/longjump pour revenir à l'appelant. * Appel de la fonction à benchmarker en boucle : attention aux fonctions avec effets de bord. * opt -mem2reg n'a pas l'air de marcher en LLVM 6.0, mais ça marche en 3.8 (passage des load/store en forme SSA sur les registres virtuels). Choix : * On ne mesure pas la conso mémoire de la pile. * Paires de passes Vs "ensemble de passes" (de taille >2) : il faut considérer de toutes façons les passes de bases (exemple : mem2reg lancé avant les autres), en plus des paires de passes d'intérêt. À faire : * Éventuellement : utiliser dlopen/dlsym pour charger/exécuter la fonction à benchmarker depuis le driver de tests. * Regarder l'infra de tests/benchmarks LLVM. Attention, on est peut-être en train de ré-inventer la roue. * Regarder l'API de lancement de passes LLVM.