X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=Report%2FFront%2FAbstract.tex;h=9ef31c1e229009ac8870dc1a9a2e209e87daa261;hb=0ac3f8b7cfb60e71b9f95dc8bf1752e1e971685f;hp=97af138045a6ebf7fe841d5fd0f200eac71e23bd;hpb=99713a971023a195e42cf9e63a6b30e3e87d9880;p=matthijs%2Fprojects%2Finternship.git diff --git a/Report/Front/Abstract.tex b/Report/Front/Abstract.tex index 97af138..9ef31c1 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, aimed 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 aims at 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 aims for "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 required. + +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 around finding the balance in various +tradeoffs between flexibility, performance, complexity/area, code size, etc. 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, improved error +messages, debug info (or line number) propagation to the backend and integrating +the (currently separate) backend codegenerator. \end{abstract}