Rename Presentation.tex to Progress.tex.
authorMatthijs Kooijman <kooijman@eris.(none)>
Tue, 1 Jul 2008 09:53:20 +0000 (11:53 +0200)
committerMatthijs Kooijman <kooijman@eris.(none)>
Tue, 1 Jul 2008 09:53:20 +0000 (11:53 +0200)
Presentations/Makefile
Presentations/Presentation.tex [deleted file]
Presentations/Progress.tex [new file with mode: 0755]

index ece134a5e34830ff75601b7f272654744f067196..6899b9b3d7a9685090d63bb139fce01cc51a7b05 100755 (executable)
@@ -1,4 +1,4 @@
-all: Presentation.pdf
+all: Progress.pdf
 
 REPEAT_TEXT = 'Rerun to get cross-references right'
 
 
 REPEAT_TEXT = 'Rerun to get cross-references right'
 
@@ -8,7 +8,7 @@ REPEAT_TEXT = 'Rerun to get cross-references right'
 %.ps: %.svg
        inkscape $(addsuffix .svg,$(basename $@)) --export-ps=$@
 
 %.ps: %.svg
        inkscape $(addsuffix .svg,$(basename $@)) --export-ps=$@
 
-Presentation.dvi: *.tex beamerthemerecore.sty images/*.ps
+Progress.dvi: *.tex beamerthemerecore.sty images/*.ps
        latex '\scrollmode\input $(basename $@)' || exit 1; \
        latex '\scrollmode\input $(basename $@)' || exit 1; \
        while grep -s $(REPEAT_TEXT)  $(addsuffix .log,$(basename $@)) ; do \
        latex '\scrollmode\input $(basename $@)' || exit 1; \
        latex '\scrollmode\input $(basename $@)' || exit 1; \
        while grep -s $(REPEAT_TEXT)  $(addsuffix .log,$(basename $@)) ; do \
diff --git a/Presentations/Presentation.tex b/Presentations/Presentation.tex
deleted file mode 100755 (executable)
index 6a710ab..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-\documentclass[hyperref={pdfpagelabels=false}]{beamer}
-
-%\setbeameroption{show notes}
-
-\mode<presentation>
-{
-  %\useinnertheme{echt}
-  %\useinnertheme{proef}
-  \usetheme{recore}
-  \setbeamercovered{transparent}
-%\setbeamertemplate{footline}[frame number]
-}
-
-\usepackage[english]{babel}
-\usepackage[latin1]{inputenc}
-\usepackage{times}
-\usepackage[T1]{fontenc}
-\usepackage{acronym}
-\usepackage{tikz}
-\usepackage{multimedia}
-\usepackage{subfigure}
-\usepackage{booktabs}
-% Can use a tiny fontsize
-\usepackage{fancyvrb}
-
-
-%\usepackage{pgfpages}
-%\pgfpagesuselayout{4 on 1}[a4paper,border shrink=5mm]
-
-%For handouts, use the following two lines:
-%\usepackage{pgfpages}
-%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
-
-
-\title
-{MontiumC Transforming}
-
-\author {Matthijs Kooijman}
-
-\institute[Recore Systems and University of Twente]
-{
-  \inst{}%
-  Recore Systems
-  \and
-  \inst{}%
-  Faculty of Electrical Engineering, Mathematics and Computer Science\\
-  University of Twente
-  }
-  
-\begin{document}
-
-\begin{frame}
-       \titlepage
-\end{frame}
-
-\begin{frame}{Contents}
-  \tableofcontents
-\end{frame}
-
-\section{Introduction}
-  \begin{frame}{Montium Tile Processor}
-    \begin{itemize}
-      \item Explicitely parallel processor
-      \item Multilevel reconfiguration
-      \item Separate memory addressing units
-      \item Data oriented, limited control flow
-      \item Redesign on the way
-    \end{itemize}
-  \end{frame}
-
-  \begin{frame}{MontiumC}
-    \begin{itemize}
-      \item Subset of C
-      \item Operations on data using MontiumC API
-      \item Compilable by gcc (as C++)
-      \item Under constant improvement
-    \end{itemize}
-  \end{frame}
-
-  \begin{frame}{Low Level Virtual Machine (LLVM)}
-    \begin{itemize}
-      \item Compiler framework.
-      \item Provides:
-      \begin{itemize}
-        \item C Frontend
-        \item Intermediate representation (LLVM IR)
-        \item Transformation passes
-        \item Native codegenerators
-        \item JIT compilation
-      \end{itemize}
-      \item Very modular
-    \end{itemize}
-  \end{frame}
-
-  \begin{frame}{Compiling MontiumC}
-    \pgfdeclareimage[width=\textwidth]{Compiling}{images/Compiling}
-    \pgfuseimage{Compiling}
-    \begin{itemize}
-      \item Focus: montiumccfe and transformations
-    \end{itemize}
-  \end{frame}
-
-\section{Tasks}
-
-  \subsection{Original tasks}
-    \begin{frame}{Original tasks}
-      \begin{itemize}
-        \item Select LLVM transformations
-        \item Improve and add transformations
-        \item Provide debugging information
-      \end{itemize}
-    \end{frame}
-
-  \subsection{Extra tasks}
-    \begin{frame}{Extra tasks}
-      \begin{itemize}
-        \item What is MontiumC?
-        \item What is Montium IR?
-        \item Reconfigurable binaries
-      \end{itemize}
-    \end{frame}
-
-    \begin{frame}{What is MontiumC?}
-      \note{Two angles: What do we want, and what do we support.}
-      \begin{itemize}
-      \item Status: Specification is ongoing
-      \item Challenges:
-        \begin{itemize}
-          \item Clang is nontransparent
-          \note[item]{Clang --- A lot of special cases}
-          \item C is complex
-          \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}
-    \note{} % Empty filler note page
-
-    \begin{frame}{What is Montium IR?}
-      \begin{itemize}
-        \item Status: Initial version
-        \item Challenges:
-        \begin{itemize}
-          \item Backend is a fast moving target
-          \item Corner cases
-          \note[item]{Corner case --- global constants}
-          \item Hardware dependencies
-          \note[item]{Hardware --- Limited number of conditionals possible}
-        \end{itemize}
-      \end{itemize}
-    \end{frame}
-
-    \begin{frame}{Selecting LLVM transformations}
-      \begin{itemize}
-        \item Status: Done
-        \item Challenges:
-        \begin{itemize}
-          \item LLVM Passes assume a lot
-          \note[item]{Assumptions --- Immediates are not free}
-          \item Montium has specific constraints
-          \note[item]{Constraint --- Implicit cycle boundaries and ordering}
-        \end{itemize}
-      \end{itemize}
-    \end{frame}
-
-    \begin{frame}{Improving / adding transformations}
-      \begin{itemize}
-        \item Status: Ongoing
-        \item Challenges:
-        \begin{itemize}
-          \item Staying generic
-          \note[item]{Generic --- LLVM maintained passes are a lot easier}
-          \item New LLVM features
-          \note[item]{Features --- Multiple return values, inlining and
-          annotation attributes}
-        \end{itemize}
-      \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 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}{Working at Recore}
-    \begin{itemize}
-      \item Smart people
-      \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}{Working with 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}
-  \begin{frame}{Conclusions}
-    \begin{itemize}
-      \item LLVM is very suitable
-      \item Defining the problem is harder than solving it
-      \item Three months is short!
-    \end{itemize}
-  \end{frame}
-
-\end{document}
diff --git a/Presentations/Progress.tex b/Presentations/Progress.tex
new file mode 100755 (executable)
index 0000000..6a710ab
--- /dev/null
@@ -0,0 +1,295 @@
+\documentclass[hyperref={pdfpagelabels=false}]{beamer}
+
+%\setbeameroption{show notes}
+
+\mode<presentation>
+{
+  %\useinnertheme{echt}
+  %\useinnertheme{proef}
+  \usetheme{recore}
+  \setbeamercovered{transparent}
+%\setbeamertemplate{footline}[frame number]
+}
+
+\usepackage[english]{babel}
+\usepackage[latin1]{inputenc}
+\usepackage{times}
+\usepackage[T1]{fontenc}
+\usepackage{acronym}
+\usepackage{tikz}
+\usepackage{multimedia}
+\usepackage{subfigure}
+\usepackage{booktabs}
+% Can use a tiny fontsize
+\usepackage{fancyvrb}
+
+
+%\usepackage{pgfpages}
+%\pgfpagesuselayout{4 on 1}[a4paper,border shrink=5mm]
+
+%For handouts, use the following two lines:
+%\usepackage{pgfpages}
+%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]
+
+
+\title
+{MontiumC Transforming}
+
+\author {Matthijs Kooijman}
+
+\institute[Recore Systems and University of Twente]
+{
+  \inst{}%
+  Recore Systems
+  \and
+  \inst{}%
+  Faculty of Electrical Engineering, Mathematics and Computer Science\\
+  University of Twente
+  }
+  
+\begin{document}
+
+\begin{frame}
+       \titlepage
+\end{frame}
+
+\begin{frame}{Contents}
+  \tableofcontents
+\end{frame}
+
+\section{Introduction}
+  \begin{frame}{Montium Tile Processor}
+    \begin{itemize}
+      \item Explicitely parallel processor
+      \item Multilevel reconfiguration
+      \item Separate memory addressing units
+      \item Data oriented, limited control flow
+      \item Redesign on the way
+    \end{itemize}
+  \end{frame}
+
+  \begin{frame}{MontiumC}
+    \begin{itemize}
+      \item Subset of C
+      \item Operations on data using MontiumC API
+      \item Compilable by gcc (as C++)
+      \item Under constant improvement
+    \end{itemize}
+  \end{frame}
+
+  \begin{frame}{Low Level Virtual Machine (LLVM)}
+    \begin{itemize}
+      \item Compiler framework.
+      \item Provides:
+      \begin{itemize}
+        \item C Frontend
+        \item Intermediate representation (LLVM IR)
+        \item Transformation passes
+        \item Native codegenerators
+        \item JIT compilation
+      \end{itemize}
+      \item Very modular
+    \end{itemize}
+  \end{frame}
+
+  \begin{frame}{Compiling MontiumC}
+    \pgfdeclareimage[width=\textwidth]{Compiling}{images/Compiling}
+    \pgfuseimage{Compiling}
+    \begin{itemize}
+      \item Focus: montiumccfe and transformations
+    \end{itemize}
+  \end{frame}
+
+\section{Tasks}
+
+  \subsection{Original tasks}
+    \begin{frame}{Original tasks}
+      \begin{itemize}
+        \item Select LLVM transformations
+        \item Improve and add transformations
+        \item Provide debugging information
+      \end{itemize}
+    \end{frame}
+
+  \subsection{Extra tasks}
+    \begin{frame}{Extra tasks}
+      \begin{itemize}
+        \item What is MontiumC?
+        \item What is Montium IR?
+        \item Reconfigurable binaries
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}{What is MontiumC?}
+      \note{Two angles: What do we want, and what do we support.}
+      \begin{itemize}
+      \item Status: Specification is ongoing
+      \item Challenges:
+        \begin{itemize}
+          \item Clang is nontransparent
+          \note[item]{Clang --- A lot of special cases}
+          \item C is complex
+          \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}
+    \note{} % Empty filler note page
+
+    \begin{frame}{What is Montium IR?}
+      \begin{itemize}
+        \item Status: Initial version
+        \item Challenges:
+        \begin{itemize}
+          \item Backend is a fast moving target
+          \item Corner cases
+          \note[item]{Corner case --- global constants}
+          \item Hardware dependencies
+          \note[item]{Hardware --- Limited number of conditionals possible}
+        \end{itemize}
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}{Selecting LLVM transformations}
+      \begin{itemize}
+        \item Status: Done
+        \item Challenges:
+        \begin{itemize}
+          \item LLVM Passes assume a lot
+          \note[item]{Assumptions --- Immediates are not free}
+          \item Montium has specific constraints
+          \note[item]{Constraint --- Implicit cycle boundaries and ordering}
+        \end{itemize}
+      \end{itemize}
+    \end{frame}
+
+    \begin{frame}{Improving / adding transformations}
+      \begin{itemize}
+        \item Status: Ongoing
+        \item Challenges:
+        \begin{itemize}
+          \item Staying generic
+          \note[item]{Generic --- LLVM maintained passes are a lot easier}
+          \item New LLVM features
+          \note[item]{Features --- Multiple return values, inlining and
+          annotation attributes}
+        \end{itemize}
+      \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 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}{Working at Recore}
+    \begin{itemize}
+      \item Smart people
+      \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}{Working with 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}
+  \begin{frame}{Conclusions}
+    \begin{itemize}
+      \item LLVM is very suitable
+      \item Defining the problem is harder than solving it
+      \item Three months is short!
+    \end{itemize}
+  \end{frame}
+
+\end{document}