Compilateurs
Quelle caractéristique d'une représentation intermédiaire en forme SSA est correcte ?
- AChaque variable n'est affectée qu'exactement une fois dans le programme
- BToutes les variables sont placées en mémoire et non en registres
- CLe programme est réécrit sans aucune instruction de branchement conditionnel
Afficher la réponse et l'explication
Réponse : A. Chaque variable n'est affectée qu'exactement une fois dans le programme
En forme SSA, les variables sont renommées pour n'être affectées qu'une fois, et aux points de jonction une fonction φ choisit la valeur. Par exemple, une variable x affectée deux fois est scindée en x1 et x2, ce qui rend explicite laquelle est utilisée. Les relations définition-utilisation étant claires, les optimisations comme la propagation de constantes ou l'élimination de code mort sont facilitées. Les branchements étant traités par les fonctions φ, les instructions de branchement ne disparaissent pas. Les variables ne sont pas non plus placées en mémoire ; elles sont le plus souvent traitées comme candidates aux registres.