HOME | ENGLISH | IMPRESSUM | KIT

Bachelorarbeit (abgeschlossen): Frühzeitige Ausführung von parallelize-mem

Graphbasierte Zwischenrepräsentationen von Compilern wie libFirm bieten die Möglichkeit, Aliasinformationen direkt im Graph zu kodieren. Dazu wird die üblicherweise totale Ordnung von Seiteneffekten wie Speicherzugriffen zu einer Halbordnung relaxiert. Antiketten in dieser Halbordnung entsprechen genau Seiteneffekten, die sich gegenseitig nicht beeinflussen, so dass beispielsweise die Befehlsanordnung größere Freiräume hat. Insbesondere Speicherzugriffe beeinflussen sich gegenseitig nicht, wenn die zugegriffenen Adressen in keiner Aliasrelation zueinander stehen. Der libFirm-Pass parallelize-mem legt Antiketten auf dieser Grundlage in unterschiedlichen Speicherpartitionen ab.

Bisher findet diese Speicherpartitionierung erst kurz vor der Befehlsauswahl statt. Damit frühere Optimierungspässe von der reicheren Graphstruktur profitieren können, wäre es aber denkbar, die Paritionierung schon früher vorzunehmen.

Ziel dieser Arbeit ist es, parallelize-mem so früh wie möglich in der Optimierungs-Pipeline auszuführen und den Aufbau auf Synergieeffekte hin zu untersuchen. Dabei werden Inkompatibilitäten und Fehlverhalten in verschiedenen Pässen zutage treten, die in geeigneter Weise behandelt werden müssen. Da Aliasinformation in früheren Pässen bereits als externes Analyseresultat verfügbar ist, gilt es, den Nutzen dieser Änderung abzuschätzen.

Aufgabe:

  • Ein frühzeitiger Pass von parallelize-mem
  • Auftretende Probleme behandeln
  • Den Nutzen abzuschätzen

Voraussetzungen

  • Programmierkenntnisse in C
  • Interesse am Compilerbau und Optimierungen
  • Erfahrung in libFirm vorteilhaft

Schlüsselworte

Compiler, libFirm, Optimierung 

Veröffentlichungen

Veröffentlichung
Frühzeitige Ausführung von parallelize-mem

Betreuer

Wissenschaftliche Mitarbeiter
Sebastian Graf
Ehemalige Mitarbeiter
M.Sc. Andreas Fried

Studenten

Studenten
Jonas Schwabe

PDF:

pdf