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 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.
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"
+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 still in use.
+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 finding the balance between various
-tradeoffs between flexibility, performance, complexity/area, code size). This
+pipelining and code compression, and 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.