[pypy-svn] r63798 - pypy/extradoc/talk/icooolps2009-dotnet

antocuni at codespeak.net antocuni at codespeak.net
Tue Apr 7 16:57:17 CEST 2009


Author: antocuni
Date: Tue Apr  7 16:57:17 2009
New Revision: 63798

Modified:
   pypy/extradoc/talk/icooolps2009-dotnet/clibackend.tex
   pypy/extradoc/talk/icooolps2009-dotnet/flexswitch1.png
   pypy/extradoc/talk/icooolps2009-dotnet/flexswitch2.png
   pypy/extradoc/talk/icooolps2009-dotnet/paper.bib
Log:
use letters instead of numbers to label the blocks in the picture, to avoid
confusion with the "official" numbering described below



Modified: pypy/extradoc/talk/icooolps2009-dotnet/clibackend.tex
==============================================================================
--- pypy/extradoc/talk/icooolps2009-dotnet/clibackend.tex	(original)
+++ pypy/extradoc/talk/icooolps2009-dotnet/clibackend.tex	Tue Apr  7 16:57:17 2009
@@ -17,7 +17,7 @@
 before being executed, the generated code will be compiled again by the .NET JIT
 compiler.
 
-Thus, when using the CLI backend, we actually have two JIT compilers at two different levels
+Thus, when using the CLI backend, we actually have two JIT compilers at two different
 layers, each one specialized in different kinds of optimization.
 By operating at a higher level, our JIT can potentially do a better job 
 in some contexts, as our benchmarks demonstrate (see
@@ -56,16 +56,16 @@
 \includegraphics[height=5cm]{flexswitch1}
 \includegraphics[height=5cm]{flexswitch2}
 \caption{An example of a flexswitch evolution: in the picture on the
-  right block 7 has been dynamically added.}\label{flexswitch-fig}
+  right block D has been dynamically added.}\label{flexswitch-fig}
 \end{center}
 \end{figure}
 
-In the pictures of Figure~\ref{flexswitch-fig}, block 5 (highlighted in grey)
+In the pictures of Figure~\ref{flexswitch-fig}, block B (highlighted in grey)
 corresponds to a flexswitch; initially (picture on the left) 
-only block 6, containing the code to restart the JIT compilation,
+only block C, containing the code to restart the JIT compilation,
 is connected to the flexswitch; the picture on the right
 shows the graph after the first case has been dynamically added to the flexswitch,
-by linking block 5 with the freshly created block number 7.
+by linking block B with the freshly created block D.
 
 
 \subsection{Implementing flexswitches in CLI}
@@ -100,9 +100,6 @@
 
 \item Each either primary or secondary method implements a certain
   number of blocks, all belonging to the same flow graph.
-
-\item The parameters of a method correspond to the arguments of what we call the \emph{initial block} of the method.
-
 \end{itemize} 
 
 When a new case is added to a flexswitch, the backend generates the new blocks
@@ -126,7 +123,7 @@
 be easily implemented, by just invoking the corresponding method.
 What cannot be easily implemented in CLI is following an external link
 whose target is not an initial block; consider, for instance, the
-outgoing link from block 7 to block 3 in Figure~\ref{flexswitch-fig}. How is it possible to jump into
+outgoing link from block D to block A in Figure~\ref{flexswitch-fig}. How is it possible to jump into
 the middle of a method?
 
 To solve this problem every method contains a special code, called
@@ -273,6 +270,11 @@
   }
 }
 \end{lstlisting}
+
+XXX: add note to explain why we use a for loop instead of an hashtable
+
+XXX: add note to explain who calls execute()
+
 The mapping from integers values to delegates (pointing to secondary
 methods) is just implemented by the two arrays \lstinline{values} and
 \lstinline{cases}. Method \lstinline{add_case} extends the mapping

Modified: pypy/extradoc/talk/icooolps2009-dotnet/flexswitch1.png
==============================================================================
Binary files. No diff available.

Modified: pypy/extradoc/talk/icooolps2009-dotnet/flexswitch2.png
==============================================================================
Binary files. No diff available.

Modified: pypy/extradoc/talk/icooolps2009-dotnet/paper.bib
==============================================================================
--- pypy/extradoc/talk/icooolps2009-dotnet/paper.bib	(original)
+++ pypy/extradoc/talk/icooolps2009-dotnet/paper.bib	Tue Apr  7 16:57:17 2009
@@ -231,10 +231,11 @@
 }
 
 @techreport{PyPyJIT09,
-	title = {Get Your Own Just-In-Time Specializing Compiler For Free},
+	title = {Automatic generation of {JIT} compilers for dynamic
+                   languages in .{NET}},
 	institution = {{DISI}, University of Genova and Institut f\"ur Informatik, {Heinrich-Heine-Universit\"at D\"usseldorf}},
 	author = {Davide Ancona and Carl Friedrich Bolz and Antonio Cuni and Armin Rigo},
-	year = {2009},
+	year = {2008},
 }
 
 @Article{PyPyTracing,



More information about the Pypy-commit mailing list