Add abstract.
authorMatthijs Kooijman <kooijman@eris.recoresystems.com>
Mon, 15 Sep 2008 09:30:16 +0000 (11:30 +0200)
committerMatthijs Kooijman <kooijman@eris.recoresystems.com>
Mon, 15 Sep 2008 09:30:16 +0000 (11:30 +0200)
Report/Front/Abstract.tex

index 97af138045a6ebf7fe841d5fd0f200eac71e23bd..02256b9c419c5ce282156ac3b45209c4fa1709d5 100644 (file)
@@ -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}