[pypy-svn] r77032 - pypy/extradoc/planning

arigo at codespeak.net arigo at codespeak.net
Mon Sep 13 09:36:05 CEST 2010


Author: arigo
Date: Mon Sep 13 09:36:03 2010
New Revision: 77032

Modified:
   pypy/extradoc/planning/jit.txt
Log:
Mark some tasks as done.


Modified: pypy/extradoc/planning/jit.txt
==============================================================================
--- pypy/extradoc/planning/jit.txt	(original)
+++ pypy/extradoc/planning/jit.txt	Mon Sep 13 09:36:03 2010
@@ -2,25 +2,12 @@
 ---------
 
 - look at assembler-assembler calls again: if the inner function is
-  traced after the outer one, the call is slow.  Might be solved
-  easily if we implement full out-of-line guards (e.g. by invalidating
-  the outer function when the inner one gets compiled)
-  ---
-  More thoughts (antonio, arigo): by the way we detect traces too long,
-  we can always immediately compile the subfunction.  If we do that then
-  there is no risk of generating a slow call.
+  traced after the outer one, the call is slow.  DONE
 
 - have benchmarks for jit compile time and jit memory usage
 
-- trace into functions even if they have a loop. only if the loop is actually
-  hit, a residual portal call is produced (status: kill-caninline branch,
-  DONE)
-
-- generators are not really fast – maybe add a JUMP_ABSOLUTE_GENERATOR that
-  does not call can_enter_jit after an iteration in which there was a yield.
-  obviously. (status: unclear -- the frame of the generator cannot be a
-  virtual, so should we somehow make it a virtualizable? e.g. by never inlining
-  generators?)
+- generators are not really fast.  DONE, with the only restriction
+  that the code in generators is never inlined into some caller.
 
 - think again about perfect specialization. Check if we loose anything
   if we turn it off. Another approach to specialization: specialize things
@@ -31,7 +18,7 @@
 
 - kill GUARD_(NO)_EXCEPTION; replace that by LAST_EXC_VALUE to load the
   current exception from the struct in memory, followed by a regular
-  GUARD_CLASS.
+  GUARD_CLASS.  (Armin: Look like a simplification, but it's a bit messy too)
 
 - write a document that says what you cannot expect the jit to optimize.
   E.g. http://paste.pocoo.org/show/181319/ with B being old-style and



More information about the Pypy-commit mailing list