Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Vortrag zur Veröffentlichung "Optimistic Register Coalescing" von Jinpyo Park und Soo-Mook Moon Abschluss Kimon Hoffmann [email protected] 27. Mai 2005 Seminar: Zwischensprachen & Codegenerierung Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Registerzuteilung mittels Graphfärbung Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing • 1982 von G. J. Chatin vorgestellte Methode der Evaluierung & Ergebnisse Registerzuteilung • Abstraktion der Registerzuteilung zu k-Färbung des sog. Interferenzgraphen • Problem: k-Färbung des Graphen mit minimalen Spills ist NP-vollständig • Daher: Einsatz von Heuristiken Abschluss Registerzuteilung mittels Graphfärbung Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing • 1982 von G. J. Chatin vorgestellte Methode der Evaluierung & Ergebnisse Registerzuteilung • Abstraktion der Registerzuteilung zu k-Färbung des sog. Interferenzgraphen • Problem: k-Färbung des Graphen mit minimalen Spills ist NP-vollständig • Daher: Einsatz von Heuristiken Abschluss Der Interferenzgraph Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Definition Abschluss Der Interferenzgraph ist ein Graph, bei dem jeder Knoten dem Lebenszeitraum eines Wertes und jede Kante einem Konflikt durch Überlappung der Lebenszeiträume zweier Werte entspricht. Beispiel: Aufbau eines Interferenzgraph Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann A Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse B Abschluss t Abbildung: Zwei überlappende Lebenszeiträume A B Abbildung: Der resultierende Interferenzgraph Beispiel: Aufbau eines Interferenzgraph Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann A Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse B Abschluss t Abbildung: Zwei überlappende Lebenszeiträume A B Abbildung: Der resultierende Interferenzgraph Zusätzliche Aufgabe: Entfernen von Kopien Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Zusätzlich zur möglichst optimalen Verteilung der Register, Entfernung möglichst vieler Kopien • Wichtig, da vorhergehende Optimierungen viele unnötige Kopien zurücklassen • Unnötige Kopien beeinträchtigen Performanz Übertragung auf Graphfärbungsabstraktion Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren • Einführung eines zusätzlichen Kantentyps im Interferenzgraphen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Zeigt an, ob ein Lebenszeitraum die Kopie eines anderen ist • Entfernung der Kopie entspricht Zuweisung derselben Farbe an beide Knoten • Forderung nach Gleichfärbung kann im Graphen durch Verschmelzen der Knoten und Vereinigung ihrer Kantenmengen ausgedrückt werden • Eine solche Verschmelzung wird als Coalescing bezeichnet Negative Auswirkung des Coalescing Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Forderung nach Gleichfärbung schränkt Farbwahl ein • Verschmelzung der Interferenzkanten kann Färbbarkeit beeinträchtigen • Zusätzlich benötigte Spills beeinträchtigen Performanz stärker als Kopie eines Wertes Beispiel: Negative Auswirkung des Coalescing Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing B C A D Evaluierung & Ergebnisse Abschluss Abbildung: Bei freier Farbwahl werden 2 Farben benötigt. Beispiel: Negative Auswirkung des Coalescing Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing B C A D Evaluierung & Ergebnisse Abschluss Abbildung: Bei Forderung nach Gleichfärbung werden 3 Farben benötigt. Negative Auswirkung des Coalescing Registerzuteilung allgemein Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Folgerung Der Algorithmus sollte versuchen, nur solche Knoten auszuwählen, deren Verschmelzung die Färbbarkeit des Graphen nicht verschlechtert. Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Chatins Färbungsheuristik Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Chatins Zuteiler basiert auf dem folgenden Theorem: Theorem Ein Knoten mit weniger als k Nachbarn ist immer färbbar, unabhängig davon, wie der Rest des Graphen gefärbt wurde. • Einen solchen Knoten nennt man Knoten niedrigen Grades. • Einen Knoten mit k und mehr Nachbarn nennt man einen Knoten signifikanten Grades. Vorgehensweise von Chatins Zuteiler Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 • Entferne Knoten und alle seine Kanten aus dem Graph • Lege den Knoten auf den Stapel Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Solange Knoten niedrigen Grades vorhanden 2 Falls Graph leer • Hole Knoten nacheinander vom Stapel und weise ihnen dabei eine Farbe zu 3 Falls Graph nicht leer • Wähle beliebigen verbliebenen Knoten signifikanten Grades aus • Füge Spill in Zwischendarstellung ein • Beginne von vorne Vorgehensweise von Chatins Zuteiler Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 • Entferne Knoten und alle seine Kanten aus dem Graph • Lege den Knoten auf den Stapel Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Solange Knoten niedrigen Grades vorhanden 2 Falls Graph leer • Hole Knoten nacheinander vom Stapel und weise ihnen dabei eine Farbe zu 3 Falls Graph nicht leer • Wähle beliebigen verbliebenen Knoten signifikanten Grades aus • Füge Spill in Zwischendarstellung ein • Beginne von vorne Vorgehensweise von Chatins Zuteiler Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 • Entferne Knoten und alle seine Kanten aus dem Graph • Lege den Knoten auf den Stapel Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Solange Knoten niedrigen Grades vorhanden 2 Falls Graph leer • Hole Knoten nacheinander vom Stapel und weise ihnen dabei eine Farbe zu 3 Falls Graph nicht leer • Wähle beliebigen verbliebenen Knoten signifikanten Grades aus • Füge Spill in Zwischendarstellung ein • Beginne von vorne Phasen der Registerzuteilung Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann 1 • Berechnung der Lebenszeiträume aus Einleitung Zwischendarstellung Coalescing-Verfahren Optimistic Coalescing 2 Build 3 Coalesce • Aufbau des Interferenzgraphen Evaluierung & Ergebnisse Abschluss Renumber • Entfernung unnötiger Kopien durch Verschmelzung 4 Simplify • Sukzessives Entfernen aller Knoten niedrigen Grades 5 Spill (falls nötig) • Auswahl eines Knotens für den Spill • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase 6 Select • Holen der Knoten vom Stapel und Zuweisung der Farben Phasen der Registerzuteilung Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann 1 • Berechnung der Lebenszeiträume aus Einleitung Zwischendarstellung Coalescing-Verfahren Optimistic Coalescing 2 Build 3 Coalesce • Aufbau des Interferenzgraphen Evaluierung & Ergebnisse Abschluss Renumber • Entfernung unnötiger Kopien durch Verschmelzung 4 Simplify • Sukzessives Entfernen aller Knoten niedrigen Grades 5 Spill (falls nötig) • Auswahl eines Knotens für den Spill • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase 6 Select • Holen der Knoten vom Stapel und Zuweisung der Farben Phasen der Registerzuteilung Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann 1 • Berechnung der Lebenszeiträume aus Einleitung Zwischendarstellung Coalescing-Verfahren Optimistic Coalescing 2 Build 3 Coalesce • Aufbau des Interferenzgraphen Evaluierung & Ergebnisse Abschluss Renumber • Entfernung unnötiger Kopien durch Verschmelzung 4 Simplify • Sukzessives Entfernen aller Knoten niedrigen Grades 5 Spill (falls nötig) • Auswahl eines Knotens für den Spill • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase 6 Select • Holen der Knoten vom Stapel und Zuweisung der Farben Phasen der Registerzuteilung Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann 1 • Berechnung der Lebenszeiträume aus Einleitung Zwischendarstellung Coalescing-Verfahren Optimistic Coalescing 2 Build 3 Coalesce • Aufbau des Interferenzgraphen Evaluierung & Ergebnisse Abschluss Renumber • Entfernung unnötiger Kopien durch Verschmelzung 4 Simplify • Sukzessives Entfernen aller Knoten niedrigen Grades 5 Spill (falls nötig) • Auswahl eines Knotens für den Spill • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase 6 Select • Holen der Knoten vom Stapel und Zuweisung der Farben Phasen der Registerzuteilung Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann 1 • Berechnung der Lebenszeiträume aus Einleitung Zwischendarstellung Coalescing-Verfahren Optimistic Coalescing 2 Build 3 Coalesce • Aufbau des Interferenzgraphen Evaluierung & Ergebnisse Abschluss Renumber • Entfernung unnötiger Kopien durch Verschmelzung 4 Simplify • Sukzessives Entfernen aller Knoten niedrigen Grades 5 Spill (falls nötig) • Auswahl eines Knotens für den Spill • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase 6 Select • Holen der Knoten vom Stapel und Zuweisung der Farben Phasen der Registerzuteilung Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann 1 • Berechnung der Lebenszeiträume aus Einleitung Zwischendarstellung Coalescing-Verfahren Optimistic Coalescing 2 Build 3 Coalesce • Aufbau des Interferenzgraphen Evaluierung & Ergebnisse Abschluss Renumber • Entfernung unnötiger Kopien durch Verschmelzung 4 Simplify • Sukzessives Entfernen aller Knoten niedrigen Grades 5 Spill (falls nötig) • Auswahl eines Knotens für den Spill • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase 6 Select • Holen der Knoten vom Stapel und Zuweisung der Farben Briggs’ Verbesserungen (Optimistic Coloring) Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann Einleitung Beobachtung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Auch Knoten signifikanten Grades können unter Umständen färbbar sein. • Abänderung der Spill-Phase • Wähle Knoten signifikanten Grades aus und lege ihn optimistisch auf den Stapel • Fortsetzung mit Simplify-Phase • Abänderung der Select-Phase • Falls für einen Knoten keine Farbe vorhanden • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase Briggs’ Verbesserungen (Optimistic Coloring) Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann Einleitung Beobachtung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Auch Knoten signifikanten Grades können unter Umständen färbbar sein. • Abänderung der Spill-Phase • Wähle Knoten signifikanten Grades aus und lege ihn optimistisch auf den Stapel • Fortsetzung mit Simplify-Phase • Abänderung der Select-Phase • Falls für einen Knoten keine Farbe vorhanden • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase Briggs’ Verbesserungen (Optimistic Coloring) Registerzuteilungsalgorithmen Optimistic Register Coalescing K. Hoffmann Einleitung Beobachtung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Auch Knoten signifikanten Grades können unter Umständen färbbar sein. • Abänderung der Spill-Phase • Wähle Knoten signifikanten Grades aus und lege ihn optimistisch auf den Stapel • Fortsetzung mit Simplify-Phase • Abänderung der Select-Phase • Falls für einen Knoten keine Farbe vorhanden • Einfügen der Spill-Instruktionen in Zwischendarstellung • Fortsetzung mit Renumber-Phase Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Positiver Nebeneffekt für die Heuristik Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Bereits erwähnt: Coalescing kann Färbbarkeit des Graphen verschlechtern • Aber: Coalescing kann positiven Nebeneffekt für die Heursitik haben • Durch die Verschmelzung verringert sich der Grad der Nachbarknoten, die mit beiden Knoten interferieren, um 1. • Hierdurch kann ein Knoten signifikaten Grades zu einem Knoten niedrigen Grades werden. Positiver Nebeneffekt für die Heuristik Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Bereits erwähnt: Coalescing kann Färbbarkeit des Graphen verschlechtern • Aber: Coalescing kann positiven Nebeneffekt für die Heursitik haben • Durch die Verschmelzung verringert sich der Grad der Nachbarknoten, die mit beiden Knoten interferieren, um 1. • Hierdurch kann ein Knoten signifikaten Grades zu einem Knoten niedrigen Grades werden. Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Die ursprüngliche Methode von Chatin Aggressive Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Verschmelze alle Kopien, die nicht interferieren • Keine Rücksicht auf negative Auswirkungen • Aber auch: Massive Ausnutzung des positiven Nebeneffekts • Dadurch: Entfernung der größtmöglichen Anzahl Kopien Die ursprüngliche Methode von Chatin Aggressive Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Verschmelze alle Kopien, die nicht interferieren • Keine Rücksicht auf negative Auswirkungen • Aber auch: Massive Ausnutzung des positiven Nebeneffekts • Dadurch: Entfernung der größtmöglichen Anzahl Kopien Die ursprüngliche Methode von Chatin Aggressive Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Verschmelze alle Kopien, die nicht interferieren • Keine Rücksicht auf negative Auswirkungen • Aber auch: Massive Ausnutzung des positiven Nebeneffekts • Dadurch: Entfernung der größtmöglichen Anzahl Kopien Die ursprüngliche Methode von Chatin Aggressive Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Verschmelze alle Kopien, die nicht interferieren • Keine Rücksicht auf negative Auswirkungen • Aber auch: Massive Ausnutzung des positiven Nebeneffekts • Dadurch: Entfernung der größtmöglichen Anzahl Kopien Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Alternative Methode von Briggs Conservative Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren • Komplette Vermeidung möglicher negativer Auswirkungen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Abschätzung bestimmt ob Färbbarkeit beeinträchtigt werden könnte • Knoten werden nur dann verschmolzen wenn der Ergebnisknoten weniger als k Nachbarknoten signifikanten Grades hat • Nachbarn beider Knoten mit Grad k werden nicht mit eingerechnet (Berücksichtigung des positiven Nebeneffekts) • Aber: Transitive Auswirkungen können nicht abgeschätzt werden Alternative Methode von Briggs Conservative Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren • Komplette Vermeidung möglicher negativer Auswirkungen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Abschätzung bestimmt ob Färbbarkeit beeinträchtigt werden könnte • Knoten werden nur dann verschmolzen wenn der Ergebnisknoten weniger als k Nachbarknoten signifikanten Grades hat • Nachbarn beider Knoten mit Grad k werden nicht mit eingerechnet (Berücksichtigung des positiven Nebeneffekts) • Aber: Transitive Auswirkungen können nicht abgeschätzt werden Alternative Methode von Briggs Conservative Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren • Komplette Vermeidung möglicher negativer Auswirkungen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Abschätzung bestimmt ob Färbbarkeit beeinträchtigt werden könnte • Knoten werden nur dann verschmolzen wenn der Ergebnisknoten weniger als k Nachbarknoten signifikanten Grades hat • Nachbarn beider Knoten mit Grad k werden nicht mit eingerechnet (Berücksichtigung des positiven Nebeneffekts) • Aber: Transitive Auswirkungen können nicht abgeschätzt werden Alternative Methode von Briggs Conservative Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren • Komplette Vermeidung möglicher negativer Auswirkungen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Abschätzung bestimmt ob Färbbarkeit beeinträchtigt werden könnte • Knoten werden nur dann verschmolzen wenn der Ergebnisknoten weniger als k Nachbarknoten signifikanten Grades hat • Nachbarn beider Knoten mit Grad k werden nicht mit eingerechnet (Berücksichtigung des positiven Nebeneffekts) • Aber: Transitive Auswirkungen können nicht abgeschätzt werden Alternative Methode von Briggs Conservative Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren • Komplette Vermeidung möglicher negativer Auswirkungen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Abschätzung bestimmt ob Färbbarkeit beeinträchtigt werden könnte • Knoten werden nur dann verschmolzen wenn der Ergebnisknoten weniger als k Nachbarknoten signifikanten Grades hat • Nachbarn beider Knoten mit Grad k werden nicht mit eingerechnet (Berücksichtigung des positiven Nebeneffekts) • Aber: Transitive Auswirkungen können nicht abgeschätzt werden Schwachstellen des Conservative Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse 1 Abschluss Einige Verschmelzungen werden von vorne herein ausgeschlossen • Analog zu tatsächlichen Spills vs. potentillen Spills 2 Transitive Auswirkungen können nicht erkannt werden • Nicht alle Verschmelzungen, die die Abschätzung erfüllen, werden auch tatsächlich erkannt Schwachstellen des Conservative Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse 1 Abschluss Einige Verschmelzungen werden von vorne herein ausgeschlossen • Analog zu tatsächlichen Spills vs. potentillen Spills 2 Transitive Auswirkungen können nicht erkannt werden • Nicht alle Verschmelzungen, die die Abschätzung erfüllen, werden auch tatsächlich erkannt Neue Methode: Optimistic Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Führe Aggressive Coalescing durch Optimistic Coalescing 2 Abänderung der Select-Phase Falls für Verschmolzenen Knoten keine Farbe übrig Evaluierung & Ergebnisse Abschluss 1 2 3 4 Prüfe welche der Einzelknoten färbbar wären und füge Spills für nicht färbbare Knoten ein Prüfe alle möglichen Parititionen der Menge der verbleibenden Knoten auf Färbbarkeit mit einer Farbe Wähle die Partition, die die geringstmöglichen Spill-Kosten verursacht und färbe diese mit der vorhandenen Farbe Lege die verbleibenden färbbaren Knoten an das untere Ende des Stapels Neue Methode: Optimistic Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Führe Aggressive Coalescing durch Optimistic Coalescing 2 Abänderung der Select-Phase Falls für Verschmolzenen Knoten keine Farbe übrig Evaluierung & Ergebnisse Abschluss 1 2 3 4 Prüfe welche der Einzelknoten färbbar wären und füge Spills für nicht färbbare Knoten ein Prüfe alle möglichen Parititionen der Menge der verbleibenden Knoten auf Färbbarkeit mit einer Farbe Wähle die Partition, die die geringstmöglichen Spill-Kosten verursacht und färbe diese mit der vorhandenen Farbe Lege die verbleibenden färbbaren Knoten an das untere Ende des Stapels Neue Methode: Optimistic Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Führe Aggressive Coalescing durch Optimistic Coalescing 2 Abänderung der Select-Phase Falls für Verschmolzenen Knoten keine Farbe übrig Evaluierung & Ergebnisse Abschluss 1 2 3 4 Prüfe welche der Einzelknoten färbbar wären und füge Spills für nicht färbbare Knoten ein Prüfe alle möglichen Parititionen der Menge der verbleibenden Knoten auf Färbbarkeit mit einer Farbe Wähle die Partition, die die geringstmöglichen Spill-Kosten verursacht und färbe diese mit der vorhandenen Farbe Lege die verbleibenden färbbaren Knoten an das untere Ende des Stapels Neue Methode: Optimistic Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Führe Aggressive Coalescing durch Optimistic Coalescing 2 Abänderung der Select-Phase Falls für Verschmolzenen Knoten keine Farbe übrig Evaluierung & Ergebnisse Abschluss 1 2 3 4 Prüfe welche der Einzelknoten färbbar wären und füge Spills für nicht färbbare Knoten ein Prüfe alle möglichen Parititionen der Menge der verbleibenden Knoten auf Färbbarkeit mit einer Farbe Wähle die Partition, die die geringstmöglichen Spill-Kosten verursacht und färbe diese mit der vorhandenen Farbe Lege die verbleibenden färbbaren Knoten an das untere Ende des Stapels Neue Methode: Optimistic Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Führe Aggressive Coalescing durch Optimistic Coalescing 2 Abänderung der Select-Phase Falls für Verschmolzenen Knoten keine Farbe übrig Evaluierung & Ergebnisse Abschluss 1 2 3 4 Prüfe welche der Einzelknoten färbbar wären und füge Spills für nicht färbbare Knoten ein Prüfe alle möglichen Parititionen der Menge der verbleibenden Knoten auf Färbbarkeit mit einer Farbe Wähle die Partition, die die geringstmöglichen Spill-Kosten verursacht und färbe diese mit der vorhandenen Farbe Lege die verbleibenden färbbaren Knoten an das untere Ende des Stapels Neue Methode: Optimistic Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Führe Aggressive Coalescing durch Optimistic Coalescing 2 Abänderung der Select-Phase Falls für Verschmolzenen Knoten keine Farbe übrig Evaluierung & Ergebnisse Abschluss 1 2 3 4 Prüfe welche der Einzelknoten färbbar wären und füge Spills für nicht färbbare Knoten ein Prüfe alle möglichen Parititionen der Menge der verbleibenden Knoten auf Färbbarkeit mit einer Farbe Wähle die Partition, die die geringstmöglichen Spill-Kosten verursacht und färbe diese mit der vorhandenen Farbe Lege die verbleibenden färbbaren Knoten an das untere Ende des Stapels Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Testaufbau und Benchmarks Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse • Als Basisfall dient Aggressive Coalescing auf Basis von Chatins Zuteiler • Zum Vergleich Implementierung jedes Verfahrens auf Basis von Briggs’ optimistischem Zuteiler Abschluss • Verwendung nicht numerischer Programme als Benchmarks • Verfügen über komplexen Kontrollfluss, der Raum für Optimierungen durch Umstrukturierung der Befehlsanordnung bietet • Derartige Optimierung lassen eine Vielzahl von Kopien zurück Testaufbau und Benchmarks Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse • Als Basisfall dient Aggressive Coalescing auf Basis von Chatins Zuteiler • Zum Vergleich Implementierung jedes Verfahrens auf Basis von Briggs’ optimistischem Zuteiler Abschluss • Verwendung nicht numerischer Programme als Benchmarks • Verfügen über komplexen Kontrollfluss, der Raum für Optimierungen durch Umstrukturierung der Befehlsanordnung bietet • Derartige Optimierung lassen eine Vielzahl von Kopien zurück Testaufbau und Benchmarks Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse • Als Basisfall dient Aggressive Coalescing auf Basis von Chatins Zuteiler • Zum Vergleich Implementierung jedes Verfahrens auf Basis von Briggs’ optimistischem Zuteiler Abschluss • Verwendung nicht numerischer Programme als Benchmarks • Verfügen über komplexen Kontrollfluss, der Raum für Optimierungen durch Umstrukturierung der Befehlsanordnung bietet • Derartige Optimierung lassen eine Vielzahl von Kopien zurück Testaufbau und Benchmarks Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse • Als Basisfall dient Aggressive Coalescing auf Basis von Chatins Zuteiler • Zum Vergleich Implementierung jedes Verfahrens auf Basis von Briggs’ optimistischem Zuteiler Abschluss • Verwendung nicht numerischer Programme als Benchmarks • Verfügen über komplexen Kontrollfluss, der Raum für Optimierungen durch Umstrukturierung der Befehlsanordnung bietet • Derartige Optimierung lassen eine Vielzahl von Kopien zurück Testaufbau und Benchmarks Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse • Als Basisfall dient Aggressive Coalescing auf Basis von Chatins Zuteiler • Zum Vergleich Implementierung jedes Verfahrens auf Basis von Briggs’ optimistischem Zuteiler Abschluss • Verwendung nicht numerischer Programme als Benchmarks • Verfügen über komplexen Kontrollfluss, der Raum für Optimierungen durch Umstrukturierung der Befehlsanordnung bietet • Derartige Optimierung lassen eine Vielzahl von Kopien zurück Die verwendeten Benchmarks Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Benchmark eqntott espresso li compress yacc sed gzip Zeilen Code 3616 13639 7481 1421 6482 3289 7388 Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Testumgebung für die Ausführungssimulation Testumgebung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss • Übersetzung des C-Quellcode in optimierten SPARC Assembler-Code • Anordnung zu optimiertem VLIW-Code durch Enhanced pipeline Scheduling (EPS) unter Verwendung von code motion pipelining • Ausführung des VLIW-Code auf Virtueller Maschine (VM) mit • • • • • • 16 ALUs 32 Allzweckregistern 16 Bedingungsregistern 8-fachem Branching Latenzzeiten von einem Zyklus perfekten Caches Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Durchschnittswerte der statischen Analyse Statische Analyse Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Verfahren Basisfall Aggressive Coalescing Conservative Coalescing Optimistic Coalescing Entfernte Kopien 100% 99, 0% 60, 0% 98, 9% Spills 100% 76, 0% 88, 0% 73, 5% Tabelle: Durchschnittswerte aller Benchmarks im Verhältnis zum Basisfall Gliederung Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren 1 Einleitung Registerzuteilung allgemein Registerzuteilungsalgorithmen Optimistic Coalescing Evaluierung & Ergebnisse Abschluss 2 Coalescing-Verfahren Aggressive Coalescing Conservative Coalescing 3 Optimistic Coalescing 4 Evaluierung & Ergebnisse Testumgebung Statische Analyse Laufzeitmessungen Durchschnittswerte der Ausführungszyklen Laufzeitmessungen Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Verfahren Basisfall Aggressive Coalescing Conservative Coalescing Optimistic Coalescing Ausführungszyklen 100% 96, 7% 99, 5% 96, 5% Tabelle: Durchschnittswerte aller Benchmarks im Verhältnis zum Basisfall Durchschnittswerte der dynamischen Spills Laufzeitmessungen Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Verfahren Basisfall Aggressive Coalescing Conservative Coalescing Optimistic Coalescing Dynamische Spills 100% 59, 0% 66, 0% 58, 9% Tabelle: Durchschnittswerte aller Benchmarks im Verhältnis zum Basisfall Optimistic Register Coalescing Optimistic Register Coalescing K. Hoffmann Einleitung Coalescing-Verfahren Optimistic Coalescing Evaluierung & Ergebnisse Abschluss Vielen Dank für Eure Aufmerksamkeit! Fragen?