X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fprojects%2Finternship.git;a=blobdiff_plain;f=Report%2FMain%2FProblems%2FResults.tex;fp=Report%2FMain%2FProblems%2FResults.tex;h=901472dff405682bb530d714516862d290461556;hp=0000000000000000000000000000000000000000;hb=90643309f86996e21c5b287ab0cfedb04ce020ce;hpb=4b177ffcbca823d01adfc0cfb5ea622992bd5cdc diff --git a/Report/Main/Problems/Results.tex b/Report/Main/Problems/Results.tex new file mode 100644 index 0000000..901472d --- /dev/null +++ b/Report/Main/Problems/Results.tex @@ -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.