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.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