From: Matthijs Kooijman Date: Mon, 15 Sep 2008 09:30:16 +0000 (+0200) Subject: Add abstract. X-Git-Tag: Report-final~7 X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=45b89bec5e25332c48ee92beadb9f469c581aab3;p=matthijs%2Fprojects%2Finternship.git Add abstract. --- diff --git a/Report/Front/Abstract.tex b/Report/Front/Abstract.tex index 97af138..02256b9 100644 --- a/Report/Front/Abstract.tex +++ b/Report/Front/Abstract.tex @@ -1,2 +1,38 @@ \begin{abstract} +Recore Systems is working on the Montium architecture, which is a coarse grained +reconfigurable architecture, aiming at high flexibility, paired with low power +usage and high performance. For programming the Montium, a flavour of C was +developed, called MontiumC. MontiumC is a subset of standard C, providing a +library of builtin functions to access the extra features of the Montium. + +The assignment of this internship focusses on improving the MontiumC compiler. +The main goal is to make the compiler consistently support all valid MontiumC +programs, instead of giving unexpected compilation errors when some (seemingly) +valid constructs are used in certain combinations. + +As a first subtask, a specification of MontiumC was created. This specification +is still conservative, limited to the constructs that the compiler can +consistently support. The specification is not yet automatically checked, so +input that is outside of the specification might or might not work and will not +give the best error messages yet. + +The MontiumC compiler heavily relies on the LLVM (Low Level Virtual Machine) +project, which provides libraries and code for compiler development. This +greatly simplifies the maintainance work for the compiler, but at the cost of +extra integration effort. Since the LLVM project mainly focusses on "regular" +architectures, its code is not always directly usable. This is mostly solvable +by adding extra extension hooks to the LLVM code, but sometimes local changes to +LLVM are still in use. + +Outside of the original assignment, there was also some work on the new hardware +design, for the next generation Montium. Issues here centered around software +pipelining and code compression, and finding the balance between various +tradeoffs between flexibility, performance, complexity/area, code size). This +work was not finished within the internship, but provided a good learning +experience. + +Currently, the MontiumC compiler is still far from perfect. There are plenty of +areas for improvement, including: Checking of specifications and improved error +messages, debug info (or line number) propagation to the backend, integrating +the (currently separate) backend codegenerator. \end{abstract}