Die Datentypen einer Programmiersprache müssen auch
in der Zwischensprache eines Compilers dargestellt werden.
Bei einem (möglicherweise impliziten) type cast muss der Typ umgewandelt werden.
In Firm ist das durch sogenannte Conv-Knoten dargestellt.
Nicht alle dieser Convs müssen zwingend erforderlich sein.
Weniger Convs ermöglichen weitere Optimierung
und es muss kein Code für die Konvertierung erzeugt werden,
was sich positiv auf die Laufzeit auswirkt.
Das libFirm Compiler Framework
beinhaltet bereits eine Deconv Optimierungsphase,
die allerdings auf azyklische Teilgraphen beschränkt ist.
Durch einen Datenflussanalyse-Ansatz soll
eine verbesserte Variante implementiert werden.
Indem man die Bitbreite für Werte minimiert
können überflüssige Convs identifiziert und entfernt werden.
Aufgabe:
- Einarbeitung in libFirm
- Formale Formulierung als Datenflussanalyse
- Design und Implementierung der Optimierungsphase
- Evaluation
Voraussetzungen
- C Kenntnisse
- Interesse am Compilerbau und der zugehörigen Theorie
- Leidenschaft für saubere, wissenschaftliche Experimente
Schlüsselworte
Compiler, Optimization, Deconv, Data flow analysis
Veröffentlichungen
Betreuer