[pypy-commit] extradoc extradoc: final version of slides

cfbolz noreply at buildbot.pypy.org
Wed Oct 24 01:54:06 CEST 2012


Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: extradoc
Changeset: r4895:04c3e5b2e7b0
Date: 2012-10-23 16:52 -0700
http://bitbucket.org/pypy/extradoc/changeset/04c3e5b2e7b0/

Log:	final version of slides

diff --git a/talk/dls2012/presentation/talk.tex b/talk/dls2012/presentation/talk.tex
--- a/talk/dls2012/presentation/talk.tex
+++ b/talk/dls2012/presentation/talk.tex
@@ -113,11 +113,6 @@
 \end{frame}
 
 \begin{frame}
-  \frametitle{How fast is PyPy?}
-  \includegraphics[scale=0.3]{figures/all_numbers.png}
-\end{frame}
-
-\begin{frame}
   \frametitle{Tracing JITs Compile by Observing an Interpreter}
   \begin{itemize}
       \item VM contains both an interpreter and the tracing JIT compiler
@@ -144,6 +139,7 @@
       \item A trace is an extended basic block
       \item (it has one entry and several exits)
       \item traces are easy to optime due to lack of control flow merges
+          \pause
       \item most optimizations are one forward pass
       \item optimizers are often like symbolic executors
       \item can do optimizations that are expensive or even untractable with full control flow
@@ -152,6 +148,27 @@
 
 \begin{frame}
   \frametitle{Example}
+  \includegraphics[width=\columnwidth]{figures/optimization1}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Example}
+  \includegraphics[width=\columnwidth]{figures/optimization2}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Example}
+  \includegraphics[width=\columnwidth]{figures/optimization3}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Example}
+  \includegraphics[width=\columnwidth]{figures/optimization4}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Example}
+  \includegraphics[width=\columnwidth]{figures/optimization5}
 \end{frame}
 
 
@@ -160,7 +177,7 @@
   \begin{itemize}
       \item most traces actually are loops
       \item naive foward passes ignore this bit of control flow optimization available
-      \item how to fix that without sacrifing simplicity?
+      \item how to fix that without sacrifing simplicity of optimizations?
   \end{itemize}
 \end{frame}
 
@@ -309,6 +326,17 @@
   \end{columns}
 \end{frame}
 
+\begin{frame}
+  \frametitle{Optimizations helped by loop peeling}
+  \begin{itemize}
+      \item redundant guard removal
+      \item common subexpression elimination
+      \item heap optimizations
+      \item allocation removal
+  \end{itemize}
+\end{frame}
+
+
 \begin{frame}[fragile]
   \frametitle{Larger example}
     \begin{columns}
@@ -401,7 +429,7 @@
   \frametitle{Conclusion}
   \begin{itemize}
       \item a simple preprocessing step on traces enables loop-aware optimizations for tracing JITs
-      \item no changes to the existing optimizations necessary
+      \item only minimal changes to the existing optimizations necessary
   \end{itemize}
 \end{frame}
 


More information about the pypy-commit mailing list