Analyses statiques pour la specialisation effective de programmes realistes
Auteur / Autrice : | LUKE HORNOF |
Direction : | Charles Consel |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance en 1997 |
Etablissement(s) : | Rennes 1 |
Résumé
Cette these montre comment la specialisation de programmes peut optimiser automatiquement et efficacement des applications existantes et realistes. On considere une classe d'applications existantes, les programmes des systemes d'exploitation cpw93, pab#+95, vmc96a, vmc#+96b. Les etudes precedentes ont demontre que la specialisation de ces programmes introduit des accelerations (ou speedups) impressionnantes mais la specialisation etait faite a la main mas92, mp89, pmi88. Nous introduisons des nouvelles analyses statiques qui traitent automatiquement et precisement les motifs de programmes communs a tous ces programmes. Les caracteristiques specifiques incluent : la sensibilite au flot. Une description d'analyse differente est faite pour chaque point de programme. La sensibilite au contexte. Une fonction est analysee selon le contexte specifique d'analyse de chaque site d'appel. La sensibilite au retour. Une description d'analyse differente est faite pour les effets de bord et la valeur retournee d'une fonction. La sensibilite a l'utilisation. Les differentes utilisations d'une variable peuvent avoir des descriptions d'analyse differentes au meme point de programme. Une analyse en deux phases. Une analyse de temps de liaison suivie d'une phase de transformation. De nouvelles transformations de programmes. Une construction de programme peut se voir associer plusieurs transformations. Notre analyse est utilisee a la fois pour la specialisation a la compilation et aussi pour la specialisation a l'execution. Nous integrons notre analyse dans un evaluateur partiel et l'appliquons a un ensemble d'application existantes, incluant un composant de systeme d'exploitation commercial. Nous obtenons des accelerations significatives tant durant la specialisation a la compilation que durant celle a l'execution.