Code garde : traduction, analyse statique, pipeline logiciel
Auteur / Autrice : | PING HU |
Direction : | THERESE HARDIN |
Type : | Thèse de doctorat |
Discipline(s) : | Sciences et techniques |
Date : | Soutenance en 2000 |
Etablissement(s) : | Paris 6 |
Résumé
Cette these etudie et developpe les techniques de compilation pour des processeurs ilp avec execution gardee. Ces techniques comprennent la traduction, l'analyse, ainsi que la parallelisation du code garde. En ce qui concerne la traduction, nous proposons un algorithme pour traduire des codes sequentiels en codes gardes. Cette traduction tient aussi compte des constructions de boucles dans les graphes de flots de controle. La correction de l'algorithme a ete prouvee formellement en employant une semantique operationnelle pour specifier la signification des codes sequentiels et des codes gardes. Pour developper des techniques d'analyse directement applicables au code garde, nous proposons un mecanisme d'inference statique de la semantique pour saisir l'information de la semantique des gardes dans le contexte du code garde. Sur la base de l'information semantique, nous etendons les definitions conventionnelles concernant l'analyse de programmes au code garde, et developpons les techniques d'analyse associees (tenant compte des gardes). Ces analyses incluent l'analyse de flots de controle, l'analyse de dependance de donnees, ainsi que l'analyse de flots de donnees. De plus, nous discutons une approche du pipeline logiciel pour exploiter et extraire le parallelisme present entre les instructions au cours des iterations de boucle dans le code garde. Cette approche nous permet de modulo ordonnancer les boucles en respectant a la fois les contraintes de ressources et les dependances liees aux recurrences. En outre, nous etendons cette approche pour manipuler les branchements conditionnels dans les boucles en faisant un compromis entre branchements conditionnels et execution gardee. Cette approche etendue ameliore l'utilisation des ressources dans l'execution gardee compte tenu de l'expansion raisonnable de la taille du code.