X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=Report%2FMain%2FContext%2FLLVM.tex;h=9d14cbc645b683788a360af30a7614a71c64979b;hb=bda4ad2a7baf347f8bb7239ae998088a6987b73b;hp=0f913961572b01ff160a0a543fd5cd94a9c29cd7;hpb=c61a317774bdb28a0ced8e89ffe6e739cf1252a0;p=matthijs%2Fprojects%2Finternship.git diff --git a/Report/Main/Context/LLVM.tex b/Report/Main/Context/LLVM.tex index 0f91396..9d14cbc 100644 --- a/Report/Main/Context/LLVM.tex +++ b/Report/Main/Context/LLVM.tex @@ -1,4 +1,5 @@ \section{Low Level Virtual Machine} +\label{LLVM} 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 @@ -15,6 +16,11 @@ code for: \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 +llvm-gcc, which uses gcc to compile a lot of languages with an 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++). + +From the LLVM project, we use a number of parts. In section \ref{MontiumC}, we +saw that clang frontend is used directly in the Montium frontend. Also, a lot of +transformations from the LLVM project are used. Lastly, a number of small +library functions and components are used in the frontend.