HOME | ENGLISH | IMPRESSUM | KIT

Bachelorarbeit (offen): Erweiterung eines SSA-Konstruktionsalgorithmus um Repräsentation von Speicherstellen

In parallelisierenden Compilern ist eine Repräsentation des Datenflusses zwischen Programmvariable elementar. Anhand dieser Information kann entschiedenen werden, wie man ein Programm auf verschiedenen Prozessoren verteilt und an welche Stelle Kommunikation oder Synchronisation integriert werden muss. Probleme bei dieser Datenflussanalyse stellen allerdings die Verwendung von Pointern im Quellcode dar, insbesondere durch Aliasing.

Ziel der Arbeit ist die Erweiterung des Firm On-the-fly SSA-Algorithmus um die Erstellung und Repräsentation von Datenabhängigkeiten zwischen Speicherstellen. Dabei soll der Algorithmus mit einer intraprozeduralen PointsTo-Analyse kombiniert werden, sodass SSA-Kanten sowohl zwischen dem Pointer-Wert als auch dem referenzierten Wert erzeugt werden.

Literatur

Braun, Matthias, et al. "Simple and Efficient Construction of Static Single Assignment Form." CC 2013: 102-122.
Stripf, Timo, et al. "Compiling Scilab to high performance embedded multicore systems." Microprocessors and Microsystems 37.8 (2013): 1033-1049.
Novillo, Diego „Memory SSA - A Unified Approach for Sparsely Representing Memory Operations“ Proc of the GCC Developers’ Summit 2007.
Chow, Fred, et al. "Effective representation of aliases and indirect memory operations in SSA form." CC 1996.
Christopher Frieler, Repräsentation von Alias-Information in der Programmgraphstruktur, December 2012.

Aufgabe:

Implementierung des On-the-fly SSA-Konstruktionsalgorithmus im GeCoS-Framework und die Erweiterung des Algorithmus um eine PointsTo-Analyse zur Repräsentation von Speicherstellen und Aliasinformation.

Voraussetzungen

  • Kenntnisse in Java-Programmierung
  • Kenntnisse von Compilerbau von Vorteil

Schlüsselworte

Compiler, SSA, Datenflussanalyse 

Betreuer

Wissenschaftliche Mitarbeiter
Andreas Zwinkau