Étude de la sensibilité aux jeux de données de la compilation itérative
Résumé
L'analyse et l'optimisation statiques de code ont leurs limitations. En effet, un grand nombre d'informations indispensables à une génération efficace de code ne sont connues qu'à l'exécution (notamment, le comportement des accès mémoire et des instructions de contrôle). Les techniques d'optimisations itératives permettent d'intégrer dans l'optimisation du code ces informations dynamiques. Ces techniques utilisent plusieurs exécutions d'un même code pour analyser son comportement et en déduire comment le transformer efficacement. Cependant, ces techniques peuvent être dépendantes des jeux de données utilisés dans le processus d'optimisation itérative. Dans cet article, nous étudions la sensibilité aux jeux de données d'une technique de compilation itérative. Nous montrons que pour certaines applications, les optimisations générées à partir d'un jeu de données ne sont pas toujours efficaces pour les autres jeux de données. Pour ces applications, nous étudions la représentativité des jeux de données. Nous déterminons s'il est possible d'exhiber un ensemble de jeux de données à partir duquel réaliser des optimisations performantes et stables pour les autres jeux de données.