[pypy-commit] extradoc extradoc: slides as they were presented

antocuni noreply at buildbot.pypy.org
Sat Jun 25 12:05:04 CEST 2011


Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: extradoc
Changeset: r3788:fb3be984aa8b
Date: 2011-06-25 12:10 +0200
http://bitbucket.org/pypy/extradoc/changeset/fb3be984aa8b/

Log:	slides as they were presented

diff --git a/talk/ep2011/training/talk.pdf b/talk/ep2011/training/talk.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..5dcb970c3060f632acdb23523f1b4700ac8a87da
GIT binary patch

[cut]

diff --git a/talk/ep2011/training/talk.rst b/talk/ep2011/training/talk.rst
--- a/talk/ep2011/training/talk.rst
+++ b/talk/ep2011/training/talk.rst
@@ -100,10 +100,54 @@
 
 
 
-How the JIT works
------------------------
+Just-in-Time Compilation
+------------------------
 
-XXX write me
+* Tracing JIT, like TraceMonkey
+
+* Complete by construction
+
+* Supports Intel x86, amd64, and soon ARM
+
+
+Short introduction to JITting
+-----------------------------
+
+* run code with the interpreter
+
+* observe what it does
+
+* generate optimized machine code for commonly executed paths
+
+* using runtime knowledge (types, paths taken)
+
+Tracing JIT
+-----------
+
+* compiles one loop at a time
+
+* generates linear code paths, recording what the interpreter did
+
+* for each possible branch, generate a guard, that exits assembler on triggering
+
+* if guard fails often enough, start tracing from the failure
+
+Meta-Tracing in PyPy
+--------------------
+
+* The explanation above assumes a tracing JIT for the full Python
+  language
+
+* Would need to be maintained whenever we change the Python version we
+  support
+
+* Instead, we have a "meta-tracing JIT"
+
+* A very important point for us since we don't have a huge team
+  to implement all Python semantics for the JIT
+
+* We trace the python interpreter's main loop (running N times) interpreting
+  a python loop (running once)
 
 
 PYPYLOG


More information about the pypy-commit mailing list