Static single assignment form - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

En compilation, Static single assignement form (abrégé en SSA) est une représentation intermédiaire du code source d'un programme dont la particularité est de ne permettre à une variable d'être affectée qu'une et une seule fois.

Benefices

L'intérêt principal de SSA est la simplification et l'amélioration des résultats de nombreuses optimisations, en simplifiant les propriétés des variables. Par exemple, soit le code suivant:

      y:= 1      y:= 2      x:= y      

Les humains peuvent voir que la première affectation n'est pas nécessaire, car la valeur de y utilisée à la troisième ligne vient de la deuxième affectation de y. Un programme devrait faire une analyse d'atteinte des définitions pour le déterminer. Mais si le programme est sous la forme SSA, alors c'est immédiat:

      y1:= 1      y2:= 2      x1:= y2      

Les algorithmes d'optimisations des compilateurs autorisés ou bien largement améliorés par l'utilisation de la forme SSA incluent:

  • la propagation de constantes
  • l'élimination du code mort
  • la réduction partielle de duplication
  • la réduction de force
  • l'allocation de registres
Page générée en 0.442 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise