[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