Generierung lokaler Optimierungen - IPD Snelting
Generierung lokaler Optimierungen - IPD Snelting
Generierung lokaler Optimierungen - IPD Snelting
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4 Implementierung<br />
Das Grundprinzip dieses Ansatzes orientiert sich, wie bei Bansal und Aiken [3], an der<br />
Idee von Massalin [14]. Es besteht darin, durch Aufzählung aller Muster und dem Vergleich<br />
ihrer Semantik, jeweils ein günstigstes und damit optimales Muster aus der Menge<br />
der semantisch äquivalenten Muster zu ermitteln und aus den Äquivalenzbeziehungen<br />
zwischen den Mustern einer solchen Menge, Ersetzungsregeln abzuleiten.<br />
Die Idee ist nun, die einzelnen Muster nacheinander aufzuzählen und dabei deren Kosten,<br />
stufenweise, bis zu einer definierten Kostenobergrenze zu steigern. Hierdurch ergibt sich<br />
eine Sortierung der Muster nach ihrem Kostenwert costM und es wird gewährleistet,<br />
dass immer das günstigste Muster zuerst behandelt wird. Nach der Erzeugung eines<br />
neuen Musters wird dieses mit den bereits erzeugten, optimalen Mustern hinsichtlich<br />
der Semantik verglichen. Besteht eine Äquivalenz, kann daraus eine Optimierungsregel<br />
oder eine Transformationsregel abgeleitet werden.<br />
Aus dieser Grundidee ergibt sich eine logische Strukturierung in die Hauptkomponenten:<br />
Mustererzeugung Erzeugt schrittweise, aufbauend auf bereits vorhandenen Mustern<br />
neue Muster. Die Kosten der erzeugten Muster nehmen dabei stufenweise, bis zu<br />
einer definierten Kostenobergrenze zu. Jedes Muster wird zur <strong>Generierung</strong> neuer<br />
Muster mit höheren Kosten der Menge der bereits erzeugten Muster hinzugefügt.<br />
Musteranalyse Prüft jedes neu erzeugte Muster zunächst dahingehend, ob eine bereits<br />
erzeugte Regel anwendbar ist. Ist dies der Fall, wird das Muster von der Musteranalyse<br />
nicht weiter berücksichtigt. Andernfalls wird geprüft, ob bereits ein anderes,<br />
semantisch äquivalentes, optimales Muster vorhanden ist. Dies ist Aufgabe des<br />
Vorabtests und des Erfüllbarkeitstests. Existiert ein solches Muster, wird eine neue<br />
Regel erzeugt. Wird kein semantisch äquivalentes, optimales Muster gefunden, so<br />
wird das Muster zur Menge der optimalen Muster MOpt hinzugefügt 1 .<br />
In Abbildung 4.1 ist der Ablauf in einem Übersichtsdiagramm dargestellt. Eine ausführliche<br />
Beschreibung der einzelnen Komponenten, sowie diverser Erweiterungen und Einschränkungen<br />
wird in den folgenden Abschnitten gegeben.<br />
4.2 Mustererzeugung<br />
4.2.1 Kostenmodell und Mustergröße<br />
Ein Kostenmodell wird benötigt, um die einzelnen Muster untereinander vergleichen und<br />
jeweils ein optimales Muster auswählen zu können. Massalin [14] verwendet hierzu die<br />
Anzahl der Instruktionen, Denali [11] vergleicht die zu erwartenden Taktzyklen einer<br />
1 Aufgrund der Aufzählungsreihenfolge ist sichergestellt, dass kein günstigeres Muster mit gleicher Se-<br />
24<br />
mantik existiert