[pypy-svn] r40678 - pypy/dist/pypy/jit/timeshifter
arigo at codespeak.net
arigo at codespeak.net
Sun Mar 18 14:32:13 CET 2007
Author: arigo
Date: Sun Mar 18 14:32:07 2007
New Revision: 40678
Added:
pypy/dist/pypy/jit/timeshifter/hrtyper.py.merge.tmp
- copied, changed from r40668, pypy/dist/pypy/jit/timeshifter/hrtyper.py
Log:
merging of http://codespeak.net/svn/pypy/branch/jit-virtual-world/pypy/jit/timeshifter/hrtyper.py
revisions 37673 to 40668:
------------------------------------------------------------------------
r40624 | arigo | 2007-03-16 23:38:02 +0100 (Fri, 16 Mar 2007) | 6 lines
(pedronis, arigo)
The same interface for the hrtyper as the rtyper about the need to
call hannotator.simplify() - i.e., just as obscure, but at least
consistently so.
------------------------------------------------------------------------
r40586 | pedronis | 2007-03-16 16:45:29 +0100 (Fri, 16 Mar 2007) | 6 lines
(arigo, pedronis)
- implement _is_early_constant to timeshifts to a constant-check for red boxes and to true for green variables
------------------------------------------------------------------------
r40500 | arigo | 2007-03-14 19:48:50 +0100 (Wed, 14 Mar 2007) | 6 lines
(arigo, arre, pedronis)
Support for the 'int_xyz_ovf' kind of operations in the timeshifter and
the llgraph back-end.
------------------------------------------------------------------------
r40452 | arigo | 2007-03-13 20:42:39 +0100 (Tue, 13 Mar 2007) | 8 lines
(pedronis, arigo)
* a more elegant approach to indirect calls: make a ts stub
for the functions that shouldn't be looked in.
* timeshift support for green oopspec calls, done by having
general support for green calls that can raise.
------------------------------------------------------------------------
r38127 | arigo | 2007-02-08 00:18:54 +0100 (Thu, 08 Feb 2007) | 2 lines
Reduce the amount of rtimeshift.py code that is duplicated by specialization.
------------------------------------------------------------------------
r38059 | arigo | 2007-02-07 13:39:28 +0100 (Wed, 07 Feb 2007) | 28 lines
(pedronis, arre, arigo) (work from yesterday)
* support debug_assert as giving a hint about a pointer being
zero or nonzero.
* fix a promotion bug by cleaning up where the 'resuming'
attribute lives. Finally got rid of pickjitstate().
* review and clean up of the 'blockset' usage in call handling
in transform.py.
* support for adding a 'split' between a residual call and the
following promotion, for the common case of a promoted value
of zero. Disabled, because it makes compilation time much
worse in practice instead of helping :-( The current idea
about why is that the promotes everywhere have the good
effect of stopping compilation early on paths that will
never be seen at all anyway.
* need to save and restore exceptions around a call to
ll_continue_compilation, otherwise the current run-time
exception unexpectedly shows up in the compiler!
* some general 'assert'ed care when setting known_nonzero.
* create uninitialized backend places when possible.
------------------------------------------------------------------------
r37966 | arigo | 2007-02-05 15:23:58 +0100 (Mon, 05 Feb 2007) | 10 lines
(pedronis, arre, arigo)
* simplify exceptiontransform to use a Struct instead of an RPyhton
instance to store the current exception.
* after residual calls, if possible, we check for exceptions using
promotion. This allows the JIT compiler to only produce code
for the branch that is actually taken (i.e. the non-exceptional
branch, usually).
------------------------------------------------------------------------
r37952 | pedronis | 2007-02-05 03:28:09 +0100 (Mon, 05 Feb 2007) | 8 lines
details:
transform_graph -> timeshift_cflow
timeshift_graph -> timeshift_ops
progress logging during timeshifting of operations (hrtyping)
------------------------------------------------------------------------
r37951 | pedronis | 2007-02-05 02:59:39 +0100 (Mon, 05 Feb 2007) | 6 lines
start reorganizing such that there's always possibly a promote after oopspec calls that can raise.
For now oopspec_was_residual == False so that the promote path is not used/reached.
Next step is to have after residual call code that promote whether there was an exception or not from runtime.
------------------------------------------------------------------------
r37944 | pedronis | 2007-02-05 01:12:26 +0100 (Mon, 05 Feb 2007) | 6 lines
always use the information whether a call can raise.
refactor a bit the after-residual-call code. the direction is to be able to not generate exception path if they are not
needed.
------------------------------------------------------------------------
r37932 | arigo | 2007-02-04 23:12:02 +0100 (Sun, 04 Feb 2007) | 11 lines
(pedronis, arigo)
* hint-annotation fixes for indirect yellow calls.
* refactor and try to unify a bit more red and yellow calls
in the transformer. The result is rather powerful (and
completely obscure in the transformer).
* deepfrozen lists in the oopspec timeshifting.
------------------------------------------------------------------------
r37925 | pedronis | 2007-02-04 22:05:26 +0100 (Sun, 04 Feb 2007) | 3 lines
copy the graphs from the hint annotator translator to the base one in timeshifting specialize
------------------------------------------------------------------------
r37902 | arigo | 2007-02-04 14:11:49 +0100 (Sun, 04 Feb 2007) | 6 lines
(pedronis, arigo)
Add an explicit AssertionError when using promotion but forgetting the
global merge point.
------------------------------------------------------------------------
r37892 | arigo | 2007-02-04 10:39:59 +0100 (Sun, 04 Feb 2007) | 6 lines
(from pedronis)
Test and fix: don't use PtrRedBox() to build boxes that are not
necessarily pointers.
------------------------------------------------------------------------
r37844 | arigo | 2007-02-03 01:15:36 +0100 (Sat, 03 Feb 2007) | 5 lines
(pedronis, arigo)
When an exception is raised by the original graphs, the timeshifted
graphs now assert that the exception cannot be None. See test.
------------------------------------------------------------------------
r37823 | arigo | 2007-02-02 20:59:02 +0100 (Fri, 02 Feb 2007) | 10 lines
(arre, pedronis, arigo)
Add a flag 'known_nonzero' to PtrRedBox. This allows the propagation of
the fact that some pointers cannot be NULL, which is essential to get
reasonable code out of exception raising. This keeps exception-raising
paths separate from regular returns - otherwise the compiler would try
to produce code that uses normally the special "-1" value returned in
case of error!
------------------------------------------------------------------------
r37683 | ac | 2007-01-31 20:24:47 +0100 (Wed, 31 Jan 2007) | 1 line
(pedronis, arre) Some support for virtualizable in virtualizable.
------------------------------------------------------------------------
r37675 | arigo | 2007-01-31 16:50:27 +0100 (Wed, 31 Jan 2007) | 2 lines
A branch in which to try to make PyPy frames virtualizable.
------------------------------------------------------------------------
More information about the Pypy-commit
mailing list