Die Compiler-Optimierungen Inlining transformiert Funktionsaufrufe in den Code der Funktion, so dass die Kosten für den Aufruf eingespart werden. Außerdem werden weitere Optimierungen möglich, die nicht interprozedural arbeiten, aber nun quasi beide Funktionen auf einmal sehen. Insbesondere werden so Funktionen die mehrmals an verschiedenen Orten ge-inline-t werden, auf diese spezielle Situation in optimiert (Konstantfaltung etc.). Das macht Inlining zu einer der wichtigeren Optimierungen, die ein Compiler beherrschen sollte.
Der libFirm-Compiler kann Inlining, jedoch sind ein paar Fälle ausgenommen. Es werden keine Funktionen ge-inline-t, die struct-Argumente haben (Pointer auf struct ist möglich), also zum Beispiel:
void foo(struct Complex {int real; int cmplx;} number);
Aufgabe:
In dieser Arbeit soll die Inline-Optimierungsphase in libFirm verbessert werden. Dazu ist eine C Implementierung in libFirm notwendig.
Voraussetzungen
- Kenntnisse in C Programmierung
- Kenntnisse von Compilerbau von Vorteil
Schlüsselworte
Compiler, libFirm, Optimierung, Inlining Veröffentlichungen
Veröffentlichung |
Verbesserung der libFirm Inline-Optimierung |
Betreuer
Ehemalige Mitarbeiter |
---|
Dr.-Ing. Andreas Zwinkau |
Studenten
Ehemalige Hiwis |
---|
Tobias Rapp |