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.

1 Einführung<br />

Die Arbeit eines Übersetzers unterteilt sich in die Analyse des zu übersetzenden Quellprogramms<br />

und die Synthese in das gewünschte Zielprogramm. Der Übergang zwischen<br />

den beiden Phasen erfolgt in der Regel über eine Zwischendarstellung des Programms in<br />

einer maschinenunabhängigen Form, woraus im Anschluss das maschinenabhängige Zielprogramm<br />

erstellt wird. Wesentlich für die Effizienz des erzeugten Zielprogramms sind<br />

<strong>Optimierungen</strong>, also Transformationen der Zwischen- oder Zieldarstellung die während<br />

der Optimierungsphase vom Übersetzer vorgenommen werden.<br />

Grundlegend lassen sich globale und lokale <strong>Optimierungen</strong> unterscheiden. Während globale<br />

<strong>Optimierungen</strong> eine Vielzahl von Informationen berücksichtigen und sich in der<br />

Regel über mehrere Grundblöcke erstrecken, berücksichtigen lokale <strong>Optimierungen</strong> nur<br />

wenige Anweisungen. In dieser Arbeit werden ausschließlich lokale <strong>Optimierungen</strong> betrachtet.<br />

Lokale <strong>Optimierungen</strong> gibt es sowohl für die Zwischendarstellung als auch für die Zieldarstellung.<br />

Letztere ermöglicht oft zusätzliche maschinenabhängige <strong>Optimierungen</strong>, wie das<br />

Ausnutzen von Flags ( Überlaufbit, Übertragsbit, etc.), die vom Statusregister eines Prozessors<br />

bereit gestellt werden, oder die Verwendung von Spezialbefehlen. Die erzielbare<br />

Verbesserung durch lokale Optimierung ist abhängig davon, wie viele lokale Optimierungsmöglichkeiten<br />

im Code vorhanden sind, wie viele davon durch den Übersetzer gefunden<br />

werden und ob die verwendeten Ersetzungsregeln die optimale Zieldarstellung<br />

erzeugen oder lediglich eine Verbesserung erreichen. Da es sich bei lokalen <strong>Optimierungen</strong><br />

in heutigen Übersetzern meist um handgeschriebene Ersetzungsregeln handelt, ist<br />

die Anzahl der auffindbaren <strong>Optimierungen</strong> von den Kenntnissen des jeweiligen Entwicklers<br />

abhängig. Eine Optimierung kann nur gefunden und genutzt werden, wenn sie<br />

zum einen bekannt und zum anderen berücksichtigt wird.<br />

1.1 Zielsetzung der Arbeit<br />

Das Ziel dieser Arbeit ist die Entwicklung eines Verfahrens, welches in der Lage ist,<br />

mittels automatischer Mechanismen, systematisch Ersetzungsregeln zur lokalen Optimierung<br />

zu generieren. Hiermit soll es möglich sein, Entwicklern eine Auflistung an die<br />

Hand zu geben, in der alle lokalen <strong>Optimierungen</strong> bis zu einer festen Größe enthalten<br />

sind. Insbesondere sollen auch Konstanten berücksichtigt werden. Die Korrektheit der<br />

9

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!