HOME | ENGLISH | IMPRESSUM | KIT

Masterarbeit (abgeschlossen): Escape Analyse für den Glasgow Haskell Compiler

Was ist Escape Analyse?

Der GHC nutzt nicht-escapende, nicht-wiederkehrende Funktionen ("Join Points") in seinen Optimierungen aus, indem er Aufrufe zu einem Sprung und einer Anpassung des Stack Pointers übersetzt. Außerdem können Join Points die umgebende Heap-Closure wiederverwenden, oder zumindest die Closure auf dem Stack ablegen.

Für nicht-escapende, aber wiederkehrende Funktionen kann man ebenfalls die umgebende Closure wiederverwenden. Ebenfalls könnten beliebige andere Heap-Objekte auf dem Stack abgelegt werden, was Overhead durch den Garbage Collector spart. Der GHC nutzt keines der beiden Szenarien aus.

Aufgabe:

In dieser Arbeit soll der GHC um eine Escape Analyse erweitert werden, deren Ergebnisse in der Codegeneration durch Allokation von nicht-escapenden Heap-Objekten auf dem Stack ausgenutzt werden soll.

Voraussetzungen

Gute Haskell-Kenntnisse

Schlüsselworte

Haskell, GHC, Compiler, Escape Analyse 

Veröffentlichungen

Veröffentlichung
Escape Analysis for the Glasgow Haskell Compiler

Betreuer

Wissenschaftliche Mitarbeiter
Sebastian Graf

Studenten

Studenten
Sebastian Scheper