[pypy-commit] extradoc extradoc: merge heads
bivab
noreply at buildbot.pypy.org
Fri Oct 12 17:27:52 CEST 2012
Author: David Schneider <david.schneider at picle.org>
Branch: extradoc
Changeset: r4852:3d51b9884b17
Date: 2012-10-12 12:27 -0300
http://bitbucket.org/pypy/extradoc/changeset/3d51b9884b17/
Log: merge heads
diff --git a/talk/dls2012/presentation/talk.tex b/talk/dls2012/presentation/talk.tex
new file mode 100644
--- /dev/null
+++ b/talk/dls2012/presentation/talk.tex
@@ -0,0 +1,144 @@
+\documentclass[utf8x]{beamer}
+
+% This file is a solution template for:
+
+% - Talk at a conference/colloquium.
+% - Talk length is about 20min.
+% - Style is ornate.
+
+\mode<presentation>
+{
+ \usetheme{Warsaw}
+ % or ...
+
+ %\setbeamercovered{transparent}
+ % or whatever (possibly just delete it)
+}
+
+
+\usepackage[english]{babel}
+\usepackage{listings}
+\usepackage{ulem}
+\usepackage{color}
+\usepackage{alltt}
+
+\usepackage[utf8x]{inputenc}
+
+
+\newcommand\redsout[1]{{\color{red}\sout{\hbox{\color{black}{#1}}}}}
+
+% or whatever
+
+% Or whatever. Note that the encoding and the font should match. If T1
+% does not look nice, try deleting the line with the fontenc.
+
+
+\title{Loop-Aware Optimizations in PyPy’s Tracing JIT}
+
+\author[Ardö, Bolz, Fijałkowski]{Håkan Ardö$^1$ \and \emph{Carl Friedrich Bolz}$^2$ \and Maciej Fijałkowski}
+% - Give the names in the same order as the appear in the paper.
+% - Use the \inst{?} command only if the authors have different
+% affiliation.
+
+\institute[Lund, Düsseldorf]{
+$^1$Centre for Mathematical Sciences, Lund University \and
+$^2$Heinrich-Heine-Universität Düsseldorf, STUPS Group, Germany
+}
+
+\date{2012 DLS, 22nd of October, 2012}
+% - Either use conference name or its abbreviation.
+% - Not really informative to the audience, more for people (including
+% yourself) who are reading the slides online
+
+
+% If you have a file called "university-logo-filename.xxx", where xxx
+% is a graphic format that can be processed by latex or pdflatex,
+% resp., then you can add a logo as follows:
+
+
+
+
+% Delete this, if you do not want the table of contents to pop up at
+% the beginning of each subsection:
+%\AtBeginSubsection[]
+%{
+% \begin{frame}<beamer>
+% \frametitle{Outline}
+% \tableofcontents[currentsection,currentsubsection]
+% \end{frame}
+%}
+
+
+% If you wish to uncover everything in a step-wise fashion, uncomment
+% the following command:
+
+%\beamerdefaultoverlayspecification{<+->}
+
+
+\begin{document}
+
+\begin{frame}
+ \titlepage
+\end{frame}
+
+\begin{frame}
+ \frametitle{Why do tracing JITs work?}
+ \begin{itemize}
+ \item They are good at selecting interesting and common code paths
+ \item both through user program and through the runtime
+ \item the latter is particularly important for dynamic languages
+ \pause
+ \item traces are trivial to optimize
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Optimizing traces}
+ \begin{itemize}
+ \item Traces trivial to optimize, because there's no control flow
+ \item most optimizations are one forward pass
+ \item optimizers are often like symbolic executors
+ \item can do optimizations that are untractable with full control flow
+ \item XXX example
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Problems with this approach}
+ \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?
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Idea for solution}
+ \begin{itemize}
+ \item idea first proposed and implemented in LuaJIT by Mike Pall
+ \item this talk presents the implementation of the same approach in RPython's tracing JIT
+ \end{itemize}
+ \pause
+ \begin{block}{Approach}
+ \begin{itemize}
+ \item do a pre-processing step on the traces
+ \item apply the unchanged forward-pass optimizations
+ \item do some post-processing
+ \item pre-processing is done in such a way that the normal optimizations become loop-aware
+ \item intuition: give the optimizations a second iteration of context to work with
+ \end{itemize}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Pre-processing the loops}
+ \begin{itemize}
+ \item pre-processing does loop unrolling
+ \item peels off one iteration of the loop, duplicating the trace
+ \item the optimizations optimize both iterations together
+ \item this yields loop-invariant code motion and related optimizations
+ \end{itemize}
+\end{frame}
+
+
+\end{document}
More information about the pypy-commit
mailing list