Add a Results section in the Problems chapter.
[matthijs/projects/internship.git] / Report / Main / Problems / Results.tex
diff --git a/Report/Main/Problems/Results.tex b/Report/Main/Problems/Results.tex
new file mode 100644 (file)
index 0000000..901472d
--- /dev/null
@@ -0,0 +1,37 @@
+\section{Results}
+Now we've seen the challenges encountered during the internship, what results
+were actually achieved?
+
+\subsection{LLVM improvements}
+During the entire internship, both small and big improvements have been made to
+the LLVM codebase. Most of these changes are directly useful for the MontiumC
+compiler, some only indirectly. Examples of these improvements include better
+support for struct types, better documentation of the testing framework and a
+lot of small fixes and changes to make LLVM more flexible and extendable.
+
+\subsection{MontiumC improvements}
+Improvements made to the MontiumC language are mostly limited to making the
+langauge better specified. Things which had limited support now either have full
+support, or were removed from the language.
+
+Usage of global variables, struct variables, arguments and returns values and
+constant arguments is now possible in most cases, where it only was possible in
+some specific cases before.
+
+Additionally, there has been some experimenting with new MontiumC features, such
+as C style memory access and loops. So far, these features have not received
+enough work in both the frontend as the backend to be supported in the language
+yet.
+
+\subsection{Frontend improvements}
+The MontiumC frontend has seen a lot of improvements.
+
+Part of these improvements are to make the language more stable. This was mostly
+done by completely reviewing the set of LLVM transformation passes and selecting
+a subset that fits the MontiumC language. Addtionally, some transformation
+passes were added, which also make the backend simpler (for example,
+reducing variable lifetimes, global variable removal, function specialization).
+
+Other improvements cause the frontend to become more usable as a program. These
+include improved error handling, extra configurability through commandline
+options and support for linking multiple files together.