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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!