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.
var0 sc1 : sc1 only disjunct ones to sc0<br />
xor<br />
and<br />
Regel r<br />
sc0<br />
⇒<br />
var0<br />
4 Implementierung<br />
Abbildung 4.23: Abbildung einer Regel mit eingeschränkter symbolischer Konstante,<br />
Einschränkung mit einem Argument. r kann nur auf Muster angewendet<br />
werden, deren Konstante an der Stelle von sc1 höchstens gesetzte<br />
Bits besitzt, die in der Konstante an der Stelle von sc0 nicht gesetzt<br />
sind (z. B. sc0 ↦→ 2 ⇒ sc1 ↦→ −3).<br />
test zu prüfen sind. Andererseits bringt diese frühe Aggregation auch eine Einschränkung<br />
mit sich, da nicht mehr jedes Muster explizit untersucht wird. Eventuelle Spezialfälle für<br />
bestimmte Konstanten werden so möglicherweise nicht erkannt. Dies verdeutlicht auch<br />
die Abbildung 4.24.<br />
Laut der Regel r können alle Muster der Form var0 − sc0 wie z. B. x − 5 auf das entsprechende<br />
Muster var0 + (−sc0), also z. B. x + (−5) abgebildet werden. Die Regel ist<br />
auf alle Muster dieser Form, bei denen sc0 durch eine konkrete Konstante ersetzt wurde,<br />
anwendbar, weswegen die entsprechenden Muster verworfen werden. Insbesondere gilt<br />
dies für das Muster var0 − 0. Tatsächlich lässt sich var0 − 0 noch günstiger als var0<br />
schreiben. Diese Regel wird aufgrund der zuvor beschriebenen allgemeineren Regel r<br />
nicht gefunden. Dies ist ein Beispiel dafür, wie, bedingt durch Aggregation, nicht alle<br />
spezielleren Optimierungsregeln gefunden werden.<br />
Dieses Problem stellt nur auf den ersten Blick eine Einschränkung dar. Angenommen es<br />
existiert eine Transformationsregel r : m → m ′ , die eine Optimierungsregel r ′ : p → p ′<br />
verdeckt, weil r auf p anwendbar ist und somit für p kein semantisch äquivalentes Muster<br />
gesucht wird. Zu p muss allerdings ein semantisch äquivalentes Muster q existieren,<br />
welches dem Muster entspricht, dass sich durch Anwendung von r auf p ergibt. Für q<br />
gilt, da es sich bei r um eine Transformationsregel handelt: costM(p) = costM(q). Weiter<br />
muss ein semantisch äquivalentes, günstigeres Muster p ′ zu p existieren, da sonst eine<br />
Optimierungsregel r ′ überhaupt nicht möglich wäre. Aus p ≡ q und p ≡ p ′ folgt: q ≡ p ′ .<br />
Es ist also möglich eine Regel r ′′ : q → p ′ zu erzeugen. Da weiter gilt, dass p ′ günstiger<br />
ist als p, und p ebenso teuer wie q ist, folgt zwangsläufig das p ′ vor q erzeugt wird und<br />
and<br />
sc0<br />
57