[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