From c61a317774bdb28a0ced8e89ffe6e739cf1252a0 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Wed, 16 Jul 2008 13:05:59 +0200 Subject: [PATCH] Add a (not really finished) piece about LLVM. --- Report/Main/Context/LLVM.tex | 21 +++++++++++++++++++-- Report/Report.bib | 15 +++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/Report/Main/Context/LLVM.tex b/Report/Main/Context/LLVM.tex index e204102..0f91396 100644 --- a/Report/Main/Context/LLVM.tex +++ b/Report/Main/Context/LLVM.tex @@ -1,3 +1,20 @@ \section{Low Level Virtual Machine} -This section describes the Low Level Virtual Machine (LLVM) project. It -describes the project's aims, organisation and status. +The Low Level Virtual Machine project (LLVM, \cite{LLVM}, \cite{Lattner:MSThesis02}) +is a framework for compiler construction. It provides its own intermediate +representation, the LLVM IR. This is a simple language that can be used to +expres any program in a static single assignment (SSA) form that is easy to +reason with and transform. + +Additionally, LLVM provides a host of libraries to work with this IR. There is +code for: +\begin{itemize} +\item reading, writing, generating and manipulating LLVM IR. +\item transformation (optimization) of LLVM IR. +\item codegeneration for various architectures. +\item just-in-time codegeneration. +\end{itemize} + +In addition, the LLVM project provides two frontends for generating LLVM IR: +llvm-gcc, which uses gcc to compile a lot of languages with a LLVM backend (from +the gcc point of view) and clang, which is a completely new project designed to +parse and emit LLVM IR for all c-like languages (C, ObjC, C++). diff --git a/Report/Report.bib b/Report/Report.bib index 8d96026..b8da921 100644 --- a/Report/Report.bib +++ b/Report/Report.bib @@ -2,3 +2,18 @@ author = "Matthijs", note = "Dummy reference to keep bibtex happy" } + +@misc{LLVM, + howpublished = "http://llvm.org", + title = "The LLVM Compiler Infrastructure Project", +} + +@MastersThesis{Lattner:MSThesis02, + author = {Chris Lattner}, + title = "{LLVM: An Infrastructure for Multi-Stage Optimization}", + school = "{Computer Science Dept., University of Illinois at Urbana-Champaign}", + year = {2002}, + address = {Urbana, IL}, + month = {Dec}, + note = {{\em See {\tt http://llvm.cs.uiuc.edu}.}} +} -- 2.30.2