Compiler
Welche Eigenschaft der Zwischendarstellung in SSA-Form ist richtig?
- AJeder Variablen wird im Programm genau einmal ein Wert zugewiesen
- BAlle Variablen liegen im Speicher statt in Registern
- CSie wird so umgeschrieben, dass sie keinerlei bedingte Verzweigungsbefehle enthält
Antwort und Erläuterung anzeigen
Antwort: A. Jeder Variablen wird im Programm genau einmal ein Wert zugewiesen
In der SSA-Form werden Variablen so umbenannt, dass jede nur einmal zugewiesen wird, und an Zusammenflussstellen wird der Wert per φ-Funktion ausgewählt. Wird x z. B. zweimal zugewiesen, entstehen x1 und x2, sodass klar ist, welches verwendet wird. Da Definition-Verwendung-Beziehungen eindeutig sind, lassen sich Optimierungen wie Konstantenpropagierung und Entfernung von totem Code leichter durchführen. Verzweigungen werden durch φ-Funktionen behandelt, die Verzweigungsbefehle verschwinden also nicht. Variablen liegen auch nicht im Speicher, sondern werden meist als Registerkandidaten behandelt.