Dynamische Bindung wird vor allem in objektorientierten Programmiersprachen viel verwendet.
Das verursacht in manchen Fällen unnötige Laufzeitkosten.
Ein guter Compiler ist in der Lage Spezialfälle zu erkennen, wo keine dynamische Bindung benötigt wird und dort einen direkten Funktionsaufruf zu verwenden.
Notwendige Voraussetzung für eine solche Optimierung ist eine Analyse,
wie zum Beispiel die Rapid Type Analysis (RTA).
Unsere libFirm-Bibliothek unterstützt eine solche Optimierung bisher nicht.
Gerade in Verbindung mit unserem X10-Frontend verspricht RTA eine deutliche Performance-Steigerung, da auch in X10 viele dynamisch gebundene Methodenaufrufe vorkommen.
Insbesondere werden weitere Optimierungen möglich,
wie zum Beispiel das Inlining des direkten Funktionsaufrufs.
Aufgabe:
Aufgabe dieser Arbeit ist die Implementierung von RTA und der Dispatch-Optimierung.
Voraussetzungen
- Programmiererfahrung mit C / libFirm hilfreich
- Spaß am Compilerbau
Veröffentlichungen
Betreuer
Studenten