Towards an SSA based compiler back-end : some interesting properties of SSA and its extensions
Institution:
Lyon, Ecole normale supérieureDisciplines:
Directors:
Abstract EN:
This thesis is articulated around three topics, all of them related to the SSA form. First, we explore the optimization of liveness algorithms when applied to program in SSA form. In particular we present an efficient algorithm, based on the structure of the program (the loops) and based on properties specific to SSA form. Next we present an intermediate representation which is a variant of SSA: the Static Single Information form (SSI). We clarify the different definitions for this form which appeared in the literature, pointing out the points where they diverge. Then we prove that the interference graph (the intersection graph of the live-ranges) of variables under SSI form is an interval graph. Finally, we propose a new approach to the problem of SSA destruction. Our method, while simpler than previous approach, gives us results comparable to more complex and not always proved approaches.
Abstract FR:
Les contributions de cette thèse s'articulent autour de trois axes, en lien avec la forme SSA. Tout d'abord, nous nous sommes intéressés aux algorithmes d'analyse de vivacité sous la forme SSA. Nous présentons un algorithme rapide, qui s'appuie sur la structure du programme (notamment les boucles) et sur les propriétés spécifiques à la forme SSA. Ensuite nous présentons une représentation dérivée de SSA : la forme Static Single Information (SSI). D'abord, nous clarifions les différentes définitions apparues antérieurement. Puis nous montrons que le graphe d'intersection de la vivacité des variables sous la forme SSI est un graphe d'intervalles. Ceci nous permet de présenter un algorithme de vivacité plus efficace. Finalement dans un dernière partie nous proposons une approche novatrice pour la redescente SSA. Notre méthode, bien que conceptuellement plus simple, nous permet d'obtenir des résultats de qualité équivalente aux méthodes précédentes. .