• 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!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Karlsruher Institut f¨ ur Technologie

Lehrstuhl f¨ ur Programmierparadigmen

Sprachtechnologie und Compiler, Sommersemester 2014 Dozent: Prof. Dr.-Ing. G. Snelting

Ubungsleiter: Sebastian Buchwald¨ Sebastian.Buchwald@kit.edu

Ubungsblatt 9¨ Ausgabe: 24.6.2014 Besprechung: 30.6.2014

Aufgabe 1:Datenflussanalyse f¨ur Konstantenpropagation

Gegeben sei die Funktionf und der zugeh¨orige Kontrollflussgraph:

i n t f ( ) { i n t x = 1 ; while ( . . . ) {

x = 2 − x ; }

return x ; }

Start

x= 1

(conditional branch)

x= 2x returnx

End 1

2

3

4 5

6

1.1Konstantenpropagation

Mittels Datenflussanalyse soll eine Konstantenpropagation f¨urfdurchgef¨uhrt werden.

1. Geben Sie einen geeigneten Verband an.

2. Geben Sie die Transferfunktionen f¨ur jeden Grundblock an.

3. F¨uhren Sie eine Fixpunktiteration durch. Welche Programmstellen k¨onnen mit der gewonnenen Informa- tion optimiert werden?

1.2Unerreichbarer Code

Die Funktiongist eine modifizierte Version vonf:

i n t g ( ) { i n t x = 1 ; while ( . . . ) {

x = 2 − x ; i f ( x != 1 ) {

x = 2 ; }

}

return x ; }

Start

x= 1

(conditional branch)

x= 2x t = x != 1

x= 2 returnx

End 1

2

3

4

5

6 7

8

1

(2)

1. Geben Sie den Verband und die dazugeh¨origen Transferfunktion f¨ur g an. Orientieren Sie sich dabei an der letzten Teilaufgabe. Warum erzielt die Datenflussanalyse nicht mehr das gew¨unschte Ergebnis?

2. Erweitern Sie ihren Verband und die dazugeh¨origen Transferfunktionen, um das gefundene Problem zu beheben.

3. F¨uhren Sie eine Fixpunktiteration mit den erweiterten Transferfunktionen durch.

2

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

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

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