Not logged in. · Lost password · Register

MrJohnny
Member for 2 months
1 post
Subject: Optimierung in Übersetzern: Grundblöcke
Hallo erstmal! Ich bin in UE2 und habe Compilerbau vorher nicht belegt gehabt, es könnte sich also um eine doofe Frage handeln. :-D (Ich bin im Master und hab schon an meiner vorherigen Hochschule ein ähnliches Modul gehabt)
Ist eigentlich ein "call"-Befehl ein Grundblock-Ende?
Ich würde sagen ist es ja ein Sprung zu einer anderen Stelle im Programm.
Andererseits "springt" das Programm ja immer wieder zum Befehl hinter dem Call zurück.

In Software Reverse Engineering wurde ein Grundblock nicht von einem Call unterbrochen.

Danke und viele Grüße,
Jonathan.
tomabrafix
I'm blue da ba dee
Avatar
Member since Oct 2014
127 posts
Hi Jonathan,

nein, ein Funktionsaufruf sorgt alleine nicht für den Anfang oder das Ende eines maximalen Grundblocks.

Dies hat verschiedene Gründe: Zum einen handelt es sich bei der Erstellung des Kontrollflussgraphen um eine intraprozedurale Analyse, das heißt der KFG wird für jede Funktion einzeln erstellt. Zum anderen hätte der Grundblock vor dem Funktionsaufruf nur einen Nachfolger bzw. der Grundblock nach dem Funktionsaufruf nur einen Vorgänger, was der Definition eines maximalen Grundblocks widerspricht. Dies würde auch dazu führen, dass verschiedene intraprozedurale Optimierungen bzw. deren Algorithmen auf die aufgerufenen Funktionen nicht mehr möglich sind, da der Entry-Knoten auf einmal einen Vorgänger und der Exit-Knoten einen Nachfolger hätte.

Bei nachfolgenden Optimierungen muss man dann aber selbstverständlich auf Funktionsaufrufe aufpassen und wenn nötig konservative Annahmen treffen um keine illegalen Optimierungen durchzuführen.
Beispiel: Das Herausziehen von Schleifeninvariantem Code. Wenn man nicht weiß, ob eine aufgerufene Funktion in einer Schleife Seiteneffekte hat, muss man dies konservativ annehmen und kann den Funktionsaufruf nicht aus der Schleife ziehen.

PS: Für inhaltliche Fragen am Besten das Forum im StudOn-Kurs verwenden: https://www.studon.fau.de/frm2924933.html

Viele Grüße,
Tom
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen