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.

4 Implementierung<br />

var0 −128<br />

xor sc0 : sc0 < 0<br />

or<br />

Abbildung 4.22: Abbildung einer Regel mit eingeschränkter symbolischer Konstante,<br />

Einschränkung ohne Argument (z. B. sc0 ↦→ −2).<br />

Einschränkungen mit einem Argument<br />

Oft sind Regeln nur für bestimmte Kombinationen von Konstanten gültig, wie es bei<br />

der in Abbildung 4.23 dargestellten Regel der Fall ist. Diese ist genau für solche Muster<br />

anwendbar, deren Konstante an der Position von sc1 dem invertierten Bitmuster der<br />

Konstante an der Position von sc0 entspricht. Konkrete Beispiele hierfür wären u. a.<br />

sc0 ↦→ 2, sc1 ↦→ −3 oder sc0 ↦→ 5, sc1 ↦→ −6. Um solche Abhängigkeiten darstellen<br />

zu können, werden daher komplexere Einschränkungsmöglichkeiten benötigt, die den<br />

Wertebereich abhängig von einer anderen symbolischen Konstante einschränken. Einige<br />

Einschränkungen sind nachfolgend aufgeführt:<br />

⇒<br />

var0<br />

• sc1 entspricht dem invertierten Bitmuster von sc0 (inverted)<br />

• sc1 enthält nur gesetzte Bits, die auch in sc0 gesetzt sind (common ones)<br />

• sc1 besitzt nur gesetzte Bits, die in sc0 nicht gesetzt sind (disjunct ones)<br />

4.5.3 Geschwindigkeit vs. Vollständigkeit bei der Regel-Aggregation<br />

Durch die Verwendung symbolischer Konstanten wird eine Aggregation der Regeln erreicht.<br />

Es stellt sich nun die Frage, zu welchem Zeitpunkt diese Aggregation stattfinden<br />

soll. Prinzipiell bestehen hierzu zwei mögliche Varianten mit jeweils Vor- und Nachteilen,<br />

auf die im Folgenden eingegangen wird.<br />

Frühe Aggregation<br />

Bei der frühen Aggregation wird versucht, möglichst früh allgemeine Regeln (durch symbolische<br />

Konstanten) zu finden, so dass speziellere Muster aufgrund der bereits vorhandenen<br />

allgemeineren Regel nicht mehr betrachtet werden müssen. Dies beschleunigt den<br />

<strong>Generierung</strong>svorgang, da vor allem weniger Muster durch den langsamen Erfüllbarkeits-<br />

56<br />

or<br />

sc0

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!