Moderne Zwischensprachen basieren auf der Static Single Assignment (SSA) Form, die es erlaubt Programme als Graphen darzustellen.
Dabei stellen Knoten SSA-Werte dar und Kanten Abhängigkeiten zwischen diesen Werten.
Ziel dieser Arbeit ist es Teilgraphen der Zwischensprachen mit gleicher Semantik zu normalisieren.
Dadurch können gemeinsame Teilausdrücke identifiziert und weitere Optimierungen ermöglicht werden.
So erlaubt die Umformung des Ausdrucks (a + b) - a zu (a - a) + b die Anwendung der Optimierungsregel a - a → 0 und die anschließende Optimierung 0 + b → b.
Aufgabe:
- Einarbeitung in libFirm
- Entwurf und Implementierung einer Normalisierungsphase
- Evaluierung des entworfenen Verfahrens
Voraussetzungen
- Erfahrung mit der Programmiersprache C
- Interesse am Compilerbau
- Leidenschaft für saubere, wissenschaftliche Experimente
Schlüsselworte
Compiler, Optimierung, Normalisierung
Veröffentlichungen
Betreuer
Studenten