Compiling Haskell To LLVM

Stc
Date: 2008-06-26

Time: 11:00

Room: BBL room 471

Speaker: John van Schie

Title: Compiling Haskell to LLVM (Thesis defense)

Abstract

Most modern compilers generate executables by targeting high level languages (C, Java, etc.) or managed virtual environments such as the JVM. In this thesis we explore an alternate approach: generating executables by targeting a typed assembly language. Typed assembly languages are low level, machine centric, languages that abstract away from platform specifics. They provide type safety in a language neutral way and they make no assumptions regarding the runtime environment's memory model, security guarantees etc.. The LLVM [1] is a mature optimizing compiler framework that provides a typed assembly language.

In this talk, we will present the design and implementation of a backend for EHC [2] that targets the LLVM. We will follow a small Haskell program as it passes through different stages of the EHC compiler, paying special attention to the code semantics and performance. Finally, we contrast the performance of executables produced by the LLVM and C backends of EHC and draw some conclusions regarding the efficiency of LLVM as a backend target for Haskell compilers.

[1] The Low Level Virtual Machine Compiler Infrastructure, http://www.llvm.org
[2] The Essential Haskell Compiler, http://www.computerscience.nl/wiki/bin/view/Ehc/WebHome

Topic attachments
I Attachment Action Size Date Who Comment
pdfpdf talk.pdf manage 616.1 K 27 Jun 2008 - 09:39 JohnVanSchie Slides of the talk