Vortrag zur Veröffentlichung "Optimistic Register Coalescing"

Werbung
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?
Herunterladen