Soutenance de thèse - Olivier Melançon
Bonjour à tous,
Vous êtes cordialement invité.e.s à la soutenance de thèse d'Olivier Melançon le mardi 13 septembre à 10h30 EST.
Title : Highly Optimizing Ahead-of-Time Compilers for Dynamic Languages
Date: Mardi 13 octobre à 10h30
Salle: Pavillon André-Aisenstadt, 2920 Ch. de la Tour, au AA-3195
Jury
| Président | Eugène Syriani |
| Directeur de recherche | Marc Feeley |
| Co-directeur de recherche | Manuel Serrano, INRIA Université Côte d'Azur |
| Membre du jury | Sébastien Roy |
| Examinateur externe | Matthew Flatt, University of Utah |
Résumé:
Efficient compilation of dynamic languages is commonly believed to require information available only at run-time, which has led to increasingly complex just-in-time compilers. This thesis shows that an ahead-of-time compiler can achieve a similar effect by duplicating code to optimize for multiple run-time contexts. Ahead-of-time compilers traditionally rely on abstract interpretation, but for dynamic languages, whose behavior varies widely with run-time inputs, the resulting approximations are too broad to be useful. Ahead-of-time Basic Block Versioning recovers precision by duplicating basic blocks during abstract interpretation, specializing each copy for a distinct context, and merging copies when a limit is reached to bound code growth. This thesis presents two algorithms: Static Basic Block Versioning, which specializes code within each function, and Lambda Versioning, which carries this specialization across function boundaries using multi-entry/multi-return functions. In some cases, Lambda Versioning generates optimally type-specialized programs, that is, programs that check the type of their input only once at run-time, then switch to a specialized code path that requires no further type checks.