25.10.2012 Aufrufe

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2 Grundlagen<br />

Definition 11 (Optimale Muster). Sei M eine Menge von Mustern. Ein Muster m ∈ M<br />

ist genau dann optimal, wenn kein semantisch äquivalentes Muster m ′ ∈ M existiert für<br />

das gilt:<br />

costM(m ′ ) < costM(m)<br />

Mit den bisherigen Definitionen kann nun eine lokale Optimierung in Form einer Ersetzungsregel,<br />

kurz Regel, wie folgt formal eingeführt werden:<br />

Definition 12 (Regel). Eine Regel r = (ml, mr) besteht aus zwei Mustern ml und<br />

mr, für die gilt: ml ≡ mr. ml wird linke Seite und mr rechte Seite der Regel genannt.<br />

Ferner muss für die Kosten der beiden Muster gelten: costM(ml) ≥ costM(mr). Gilt<br />

costM(ml) > costM(mr), so stellt r eine Optimierungsregel dar, gilt hingegen costM(ml) =<br />

costM(mr) so wird r als Transformationsregel bezeichnet. Alternativ kann man für r =<br />

(ml, mr) auch ml → mr schreiben.<br />

In Definition 12 wird der Fall eines teureren Musters auf der rechten Seite einer Regel<br />

explizit ausgeschlossen.<br />

2.3 Superoptimierung<br />

Im Kontext des Übersetzerbaus wird unter Optimierung die Transformation eines Ausdrucks,<br />

Musters oder einer Codesequenz verstanden, mit dem Ziel, diesen hinsichtlich<br />

eines Kostenmodells wie z. B. die erforderliche Rechenzeit zu verbessern. Dass das Ergebnis<br />

optimal ist oder das überhaupt eine Verbesserung erreicht wird, ist nicht garantiert.<br />

Ein Beispiel zeigt der folgende Ausdruck: x − (x + 0). Eine anwendbare lokale Optimierung<br />

ist die Ersetzung des Teilausdrucks x + 0 durch x. Damit wird der gesamte<br />

Ausdruck zwar optimiert, indem eine Addition eingespart wird, aber noch nicht das<br />

optimale Ergebnis 0 erreicht.<br />

An dieser Stelle setzt das Prinzip der Superoptimierung an. Der Begriff Superoptimierung<br />

umschreibt einen Vorgang, der darauf ausgerichtet ist, zu einem gegebenen Ausdruck<br />

bzw. Muster den optimalen Ausdruck mit gleicher Semantik zu ermitteln. Anders<br />

ausgedrückt bedeutet dies, dass zu einer gegebenen Codesequenz die einen Ausdruck<br />

repräsentiert, eine semantisch äquivalente Codesequenz gesucht wird, die bezüglich des<br />

gewählten Kostenmodells, wie die Summe der Instruktionen oder die Anzahl der notwendigen<br />

Taktzyklen, optimal ist.<br />

Eingeführt wurde der Begriff der Superoptimierung erstmals von Massalin [14] worauf<br />

in Kapitel 3 näher eingegangen wird. Anwendung findet dieses Prinzip heute in verschiedenen<br />

Arbeiten wie [3] und [11].<br />

15

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!