X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=Progress%20presentation%2FPresentation.tex;h=3364e6cf56d976a41bb84cc522d59d472d4062df;hb=69c06f9bb9a69b6148c04dd97edc2bfe61f2e315;hp=7915f1c7f8dfa4927b9f9c8f60fb8b00f6f97343;hpb=2ec73f04efbeae6a3ec14b2cbfc7f0ac02b4f56f;p=matthijs%2Fprojects%2Finternship.git diff --git a/Progress presentation/Presentation.tex b/Progress presentation/Presentation.tex index 7915f1c..3364e6c 100755 --- a/Progress presentation/Presentation.tex +++ b/Progress presentation/Presentation.tex @@ -20,6 +20,9 @@ \usepackage{multimedia} \usepackage{subfigure} \usepackage{booktabs} +% Can use a tiny fontsize +\usepackage{fancyvrb} + %For handouts, use the following two lines: %\usepackage{pgfpages} %\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm] @@ -55,7 +58,13 @@ \subsection{MontiumC} \subsection{LLVM} \subsection{Compile process} + \begin{frame}{Compiling MontiumC} + \pgfdeclareimage[width=\textwidth]{Compiling}{images/Compiling} + \pgfuseimage{Compiling} + \end{frame} + \section{Tasks} + \subsection{Original tasks} \begin{frame}{Original tasks} \begin{itemize} @@ -64,6 +73,7 @@ \item Provide debugging information \end{itemize} \end{frame} + \subsection{Extra tasks} \begin{frame}{Extra tasks} \begin{itemize} @@ -71,6 +81,7 @@ \item What is Montium IR? \end{itemize} \end{frame} + \begin{frame}{What is MontiumC?} \begin{itemize} \item Status: Specification is ongoing @@ -82,10 +93,63 @@ \note[item]{Complex C --- A lot of corner cases} \item C is limited \note[item]{Limited C --- Need to use annotations, limited amount of types} + \item Assembly vs. High level + \note[item]{Tradeoffs -- Code size vs compiler complexity, clarity + vs control, clarity vs determinism} \end{itemize} \end{itemize} \end{frame} - + + \begin{frame}[containsverbatim] + \begin{columns} + \begin{column}{0.5\textwidth} + Low level + \begin{Verbatim}[fontsize=\tiny] +mem input; +mem output; +word factor; + +void run(void) { + factor = from_int(2); + input = alloc_mem(P0M0); + output = alloc_mem(P0M1); + set_base(input, 0); + set_offset(input, 0); + set_base(output, -1); + set_offset(output, -1); + + next_cycle(); + word in = read_mem(input); + word out = p0o0(imul(ra1(in), rc1(factor))) + add_offset(input, 1); + add_offset(output, 1); + init_loop(LC1, 8); + do { + write_mem(output, out); + in = read_mem(input); + out = p0m0(imul(ra1(in), rc1(factor))) + add_offset(input, 1); + add_offset(output, 1); + } while(loop_next(LC1)); + + write_mem(output, out); +\end{Verbatim} + \end{column} + \begin{column}{0.5\textwidth} + High level + \begin{Verbatim}[fontsize=\tiny] +P0M0 int input[10]; +P0M1 int output[10]; + +void run(void) { + for (int i=0; i<10; ++i) + output[i] = input[i] * 2; +} + \end{Verbatim} + \end{column} + \end{columns} + \end{frame} + \begin{frame}{What is Montium IR?} \begin{itemize} \item Status: Initial version @@ -127,14 +191,57 @@ \end{itemize} \end{frame} + \begin{frame}{Debugging information} + \begin{itemize} + \item Status: Not started + \item Challenges: + \begin{itemize} + \item Not much LLVM support yet + \note[item]{LLVM support --- New in clang/backend, no support in + transformations yet.} + \item Transformations + \note[item]{Transformations --- Global arguments, argument addition, + removal, etc.} + \end{itemize} + \end{itemize} + \end{frame} + \begin{frame}{Reconfigurable binaries} \begin{itemize} \item Status: Recently started \item Challenges: \begin{itemize} - \item What to reconfigure? + \item Tracking variables + \note[item]{Tracking --- Through all steps of the process} \item Loss of optimizations + \note[item]{Optimizations --- Hard to encode constraints} + \item Mostly a backend problem \end{itemize} \end{itemize} \end{frame} + +\section{Work process} + \begin{frame}{Recore} + \begin{itemize} + \item Fast communication + \note[item]{Communication --- Mixed teams, easy to "listen in".} + \item Constructive brainstorming + \note[item]{Brainstorming --- Evaluating different ideas and approaches.} + \end{itemize} + \end{frame} + + \begin{frame}{LLVM} + \begin{itemize} + \item Large community + \note[item]{Community --- Companies involved, a lot of full time + developers.} + \item Great support + \note[item]{Support --- mailing list, bug reports solved within 1/2 days.} + \item Slightly conflicting goals + \note[item]{Goals --- LLVM aims mainly at "regular" architectures.} + \end{itemize} + \end{frame} + +\section{Conclusions} + \end{document}