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

pedronis at codespeak.net pedronis at codespeak.net
Tue Oct 6 15:28:42 CEST 2009


Author: pedronis
Date: Tue Oct  6 15:28:41 2009
New Revision: 68203

Modified:
   pypy/extradoc/planning/jit.txt
Log:
(cfbolz, pedronis) some gardening and updates



Modified: pypy/extradoc/planning/jit.txt
==============================================================================
--- pypy/extradoc/planning/jit.txt	(original)
+++ pypy/extradoc/planning/jit.txt	Tue Oct  6 15:28:41 2009
@@ -14,10 +14,7 @@
   pypy-jit behaviour that explicitely check whether the loops make
   sense
 
-- objectmodel.instantiate is currently not seen by the JIT. This makes all
-  instance allocation in the Python interpreter escape
-
-- store sinking also for get/setarrayitem
+- store sinking also for get/setarrayitem WIP
 - lose less information across residual calls
 
 - the tragedy of the skipped tests
@@ -33,24 +30,36 @@
 
 - improve on predictability: delegate the caching, don't trace into signals ... but produce just a conditional call
 
+- we should think about merging several consecutive guards, to make the
+  assembler smaller and to save resume data space
+
 - update things in metainterp/doc
 
+
 Python interpreter:
-- make shared dicts support shadowtracking
+
+- goal: on average <=5 guards per original bytecode
+
 - don't look for the global-lookup-cache when a function contains no
   LOAD_GLOBAL
 - it's a bit silly that it's possible to change the code objects of builtin
   functions
 - raising an exception tends to escape frames, due to the traceback capturing
+- calls with keywords produce intractably huge traces
+
 
 inlining discussion
 --------------------
 
+- need to not always inline, but clever about which functions not to inline
+- at some point we need to merge the tails of loops, to avoid exponential
+  explosion
 - need to remember when we gave up
 - tracing aggressively will put pressure on the speed of tracing
 - what should we do about recursive calls?
 - connecting compiled loops accross a call?
 
+
 things we know are missing
 ---------------------------
 
@@ -58,9 +67,10 @@
 - virtualizables are not finished:
   fix 'test_external_read_sometimes'
 
-- float support
+- save space on all the guard operations (see resume.py):
+  - share more between the guards of a loop
+  - think of ways to share information about virtuals
 
-- save space on all the guard operations (see resume.py)
 
 backend:
 - speed of backend?



More information about the Pypy-commit mailing list