From: Matthijs Kooijman <kooijman@eris.recoresystems.com>
Date: Wed, 16 Jul 2008 11:05:59 +0000 (+0200)
Subject: Add a (not really finished) piece about LLVM.
X-Git-Tag: Report-final~48
X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=c61a317774bdb28a0ced8e89ffe6e739cf1252a0;p=matthijs%2Fprojects%2Finternship.git

Add a (not really finished) piece about LLVM.
---

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}.}}
+}