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.

4 Implementierung<br />

ist, wenn anstelle einer Konstante mit demselben Wert, im linken Muster der Regel eine<br />

symbolische Konstante steht. Im Gegensatz zu Variablen gilt bei symbolischen Konstanten<br />

diese Eigenschaft nur für konkrete Konstanten, nicht aber für andere Operationen.<br />

Mit symbolischen Konstanten lässt sich also ein Muster so verallgemeinern, dass es speziellere<br />

Muster, mit konkreten anstelle von symbolischen Konstanten, überdecken kann.<br />

Für die Aufstellung von allgemeineren Regeln im Zusammenhang mit Konstanten ist dies<br />

jedoch noch nicht ausreichend. Insbesondere für die Konstantenfaltung müssen nach wie<br />

vor alle Regeln mit expliziten Konstanten aufgezählt werden:<br />

0 + 0 → 0<br />

1 + 0 → 1<br />

1 + 1 → 2<br />

.<br />

Alleine für die Addition in Z8Bit sind schon 256 2 = 65536 Regeln möglich. Vorteilhaft<br />

wäre es jedoch, wenn die Konstantenfaltung für eine Operation in einer einzigen Regel<br />

zusammengefasst werden könnte. Es stellt sich also die Frage, wie eine solche Regel<br />

aussehen kann:<br />

sc0 + sc1 →???<br />

Die linke Seite der Regel gestaltet sich einfach. Es wird eine Operation und je nach<br />

Stelligkeit dieser Operation ein oder zwei Operanden in Form von symbolische Konstanten<br />

benötigt. Damit lässt sich das entsprechende Muster für die linke Seite der Regel<br />

aufstellen, z. B. sc0 + sc1 (siehe Abbildung 4.18).<br />

sc0<br />

add<br />

sc1<br />

⇒ ???<br />

Abbildung 4.18: Regel zu Konstantenfaltung – Rechte Seite noch unklar.<br />

Zu klären bleibt, wie die rechte Seite der Regel aussehen muss. Eine einfache symbolische<br />

Konstante, z. B. sc2 die jede beliebige Konstante repräsentieren kann ist hierfür zu<br />

allgemein. Bei Anwendung der Regel, durch beispielsweise einen Übersetzer, wäre nicht<br />

definiert wie der Wert von sc2 konkret aussehen muss. Es wird demnach eine symbolische<br />

Konstante benötigt, deren Wert in Abhängigkeit von anderen symbolischen Konstanten<br />

angegeben werden kann. Hierzu wird das Konzept der symbolischen Konstanten um komplexe<br />

symbolische Konstanten erweitert, die nicht nur einen Wert repräsentieren können,<br />

sondern denen auch eine Semantik in Form einer Berechnungsfunktion zugeordnet werden<br />

kann. Etwas formaler:<br />

52

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!