• Keine Ergebnisse gefunden

Karlsruher Institut f¨ur Technologie Lehrstuhl f¨ur Programmierparadigmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Karlsruher Institut f¨ur Technologie Lehrstuhl f¨ur Programmierparadigmen"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Karlsruher Institut f¨ ur Technologie

Lehrstuhl f¨ ur Programmierparadigmen

Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting

Ubungsleiter: Matthias Braun¨ matthias.braun@kit.edu Ubungsblatt 12¨ Ausgabe: 9.7.2012 Besprechung: 16.7.2012

Aufgabe 1:Dominanz

Gegeben sei folgender Kontrollflussgraph:

Start

A

B C

D E F

G

H End

Berechnen Sie den Dominatorbaum mittels Fixpunktiteration.

Aufgabe 2:Datenflussanalyse 2.1Konstantenfaltung

Gegeben sei folgendes Programm:

i n t main ( v o i d ) { 1 i n t x = 1 ; 2 i n t i = 0 ;

3 w h i l e ( i < 1 0 ) {

4 x = 2 − x ;

5 i ++;

}

6 r e t u r n x ; }

F¨uhren Sie eine Datenflussanalyse zur Konstantenfaltung durch:

1. Wie sieht der zugeh¨orige Verband aus?

2. Stellen Sie die Datenflussgleichungen auf.

3. Berechnen Sie den Fixpunkt.

4. Falls die Analyse zu einem beliebigen Zeitpunkt abgebrochen wird, k¨onnen die Zwischenergebnisse ver- wendet werden?

1

(2)

2.2Lebendige Variablen (Zusatzaufgabe) Gegeben sei folgendes Programm:

0 v o i d f u n c ( i n t y ) {

1 i n t a = 1

2 i n t z = a+y

3 w h i l e ( y < z ) {

4 t = z−1

5 i f ( z > 4 ) {

6 z = t ;

}

7 a = z+1

}

8 a = a ;

9 r e t u r n ; }

F¨uhren Sie eine Datenflussanalyse durch um Lebendige Variablen zu bestimmen.

1. Wie sieht der zugeh¨orige Verband aus?

2. Stellen Sie die Datenflussgleichungen auf.

Idee: durchlaufe Programm r¨uckw¨arts, ab einer Benutzung ist eine Variable lebendig, ab einer Definition tot. Benutze gen-kill-Schema. gen enth¨alt Variablen die Benutzt werden, kill Variablen die Definitert werden.

3. Berechnen Sie den Fixpunkt.

Aufgabe 3:SSA Darstellung

Gegeben sind die folgenden zwei Programme in einer C-artigen Pseudosprache.

ProgrammA:

t = read int();

a = t;

t = read int();

b = t;

// let a be the bigger value if(a<b){

t = a;

a = b;

b = t;

}

printf(”Distance: %d\n”, a−b);

ProgrammB:

list get last(first){ element = first;

do{

prev = element;

element = element.next;

while(element != null);

returnprev;

}

3.1SSA Aufbau

2

(3)

Bringen Sie die ProgrammeAundBin SSA-Form!

3.2Optimierungen

Wenden Sie Kopienfortschaltung auf die beiden Programmen in SSA-Form an!

3.3SSA Abbau

Bringen Sie die Programme nach den Transformationen der letzten Aufgabe in eine nicht-SSA Form – d.h. eine Darstellung ohneφ-Funktionen!

3

Referenzen

ÄHNLICHE DOKUMENTE

(5) Alle Strings aus a und b mit einer geraden Anzahl von a und einer ungeraden Anzahl von b (Denksport- aufgabe). Aufgabe 4: Regul¨ are

Enth¨ alt die Zahl einen Punkt, so darf der Buchstabe e oder E angeh¨ angt werden, gefolgt von einem optionalen + oder - und weiteren Ziffern.. Zus¨ atzlich soll bei T NUMBER Tokens

Wenn wir versuchen, eine LR- Parsertabelle daf¨ ur zu erstellen, ergeben sich Konflikte zwischen einigen Aktionen.. Welche

Wie kann man dies anhand der Parsertabelle begr¨

Ubersetzen Sie den Ausdruck ¨ this.x = 32 - this.foo()[2] in Java Bytecode, geben Sie auch einen passenden Konstantenpool an?. (foo ist eine

Erweitern Sie ihren Verband und die dazugeh¨ origen Transferfunktionen, um das gefundene Problem zu beheben.. F¨ uhren Sie eine Fixpunktiteration mit den erweiterten

Sprachtechnologie und Compiler, Sommersemester 2014 Dozent: Prof.. Was f¨ allt

Schreiben Sie mehrere kleine Testprogramme und vergleichen Sie den generierten x86-64-Assemblers f¨ ur zwei optimierende Compiler.. K¨ onnen Sie