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.3 Normalisierung<br />
4 Implementierung<br />
Die Menge der möglichen Muster nimmt aufgrund der vielen Kombinationsmöglichkeiten<br />
von Operationen und Operanden schnell zu. Es sind jedoch nicht alle Muster für<br />
den <strong>Generierung</strong>svorgang nötig. Durch Vereinheitlichung bzw. Normalisierung können<br />
bereits bei der Mustererzeugung überflüssige Muster ausgeschlossen werden.<br />
Normalisierung bezüglich mehrerer Variablen<br />
Viele Muster unterscheiden sich lediglich in der Anordnung ihrer Variablen, sind aber<br />
ansonsten bezüglich ihres Aufbaus identisch. Für n Variablen lassen sich n! fast identische<br />
Muster erzeugen, die sich nur durch eine andere Reihenfolge ihrer Variablen bei<br />
einer Postorder-Traversierung des Mustergraphen unterscheiden. Für eine Regel ist die<br />
konkrete Benennung der Variablen jedoch unerheblich. Entscheidend ist nur, dass die<br />
relative Position jeder einzelnen Variablen erhalten bleibt. Dies soll durch die beiden in<br />
Abbildung 4.6 dargestellten Regeln verdeutlicht werden. Obwohl sich die Benennung der<br />
Variablen (Knoten 1 und Knoten 2) in den Regeln r und r ′ unterscheidet, drücken beide<br />
Regeln dieselbe Transformationsvorschrift aus.<br />
Knoten 1<br />
var0<br />
add<br />
Knoten 1<br />
var1<br />
add<br />
2<br />
2<br />
Knoten 2<br />
sub<br />
var1<br />
sub<br />
Knoten 2<br />
sub<br />
var0<br />
sub<br />
1<br />
Regel r<br />
1<br />
Regel r ′<br />
⇒<br />
⇒<br />
var0<br />
var1<br />
var1<br />
sub 3<br />
add<br />
var0<br />
sub 3<br />
Abbildung 4.6: Viele Regeln unterscheiden sich lediglich in der Benennung ihrer Variablen,<br />
beschreiben aber dieselbe Transformationsvorschrift.<br />
add<br />
29