[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