Ein Compiler-Backend führt (im Allgemeinen) die drei Phasen Befehlsauswahl, Befehlsanordnung und Registerallokation durch. Die Registerallokation muss unter Umständen zusätzliche Befehle einfügen, um Werte in den Speicher auszulagern. Eine wiederholte Befehlsanordnung nach der Registerallokation könnte die Laufzeit des Programms verbessern. Es gibt leider kaum aussagekräftige Literatur zu diesem Thema. In dieser Arbeit soll eine entsprechende Phase im libFirm Compiler Framework implementiert werden und experimentell die Möglichkeiten ausgelotet werden.
Aufgabe:
- Einarbeitung in libFirm
- Design und Implementierung einer Befehlsanordnungsphase
- Experimente im Bezug auf die Leistungsfähigkeit einer solchen Phase
Voraussetzungen
- Erfahrung mit libFirm
- Kenntnisse in C und Assembler
- Interesse am Compilerbau
- Leidenschaft für saubere, wissenschaftliche Experimente
Schlüsselworte
Compiler, Instruction Scheduling, Register Allocation Betreuer
Ehemalige Mitarbeiter |
---|
Dipl.-Inform. Sebastian Buchwald |