25.10.2012 Aufrufe

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.2.4 Reduktion durch Common Subexpression Elimination<br />

4 Implementierung<br />

Die Common Subexpression Elimination (CSE) ist eine klassische Optimierung, mit der<br />

sich mehrfache Berechnungen desselben Wertes vermeiden lassen. Hieraus ergibt sich<br />

eine weitere Möglichkeit, um die Anzahl der Muster zu reduzieren.<br />

Generell existiert für jedes Muster, auf das die CSE anwendbar ist, eine Optimierungsregel,<br />

bestehend aus dem Muster vor der Anwendung der CSE und dem Muster nach<br />

dem Anwenden der CSE (siehe Abbildung 4.10).<br />

var0<br />

neg neg<br />

sub<br />

m<br />

CSE<br />

−−−→<br />

var0<br />

neg<br />

sub<br />

Abbildung 4.10: Muster vor und nach Anwendung der CSE.<br />

Da aufgrund des Designs dieses Verfahrens jede Optimierungsregel mittels Erfüllbarkeitstest<br />

auf ihre Korrektheit hin bewiesen wird, dies aber sehr teuer1 ist, werden Muster<br />

für die die CSE anwendbar ist gleich bei der Mustererzeugung verworfen. Die entsprechenden<br />

Muster, die sich durch Anwendung der CSE ergeben würden, existieren zu<br />

diesem Zeitpunkt aufgrund ihrer geringeren Kosten bereits. Auf die entsprechenden Optimierungsregeln<br />

wird durch das Ignorieren der zuvor genannten Muster verzichtet. Dies<br />

beschleunigt die Überprüfung von Mustern auf die Anwendbarkeit einer Regel, da die<br />

Menge der verfügbaren Regeln ebenfalls kleiner bleibt. Prinzipiell ist der hier vorgestellte<br />

Ansatz aber in der Lage solche Optimierungsregeln zu finden und zu berücksichtigen.<br />

4.3 Musteranalyse<br />

Anhand der Musteranalyse wird geprüft, ob es sich bei einem neu erzeugten Muster um<br />

ein optimales Muster handelt, oder ob bereits ein semantisch äquivalentes, optimales<br />

Muster existiert. Handelt es sich um ein optimales Muster, wird dieses der Menge der<br />

optimalen Muster hinzugefügt und steht für den Äquivalenztest und damit als mögliche<br />

rechte Seite einer Regel zur Verfügung. Existiert ein äquivalentes Muster, wird eine<br />

neue Optimierungs- oder Transformationsregel angelegt. Die Überprüfung erfolgt in drei<br />

Phasen, die im Folgenden erläutert werden.<br />

1 bezüglich der erforderlichen Rechenzeit<br />

m ′<br />

33

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!