Author: Alex Gaynor <alex.gay...@gmail.com>
Branch: jit-tracehook
Changeset: r53084:e54e45812b77
Date: 2012-03-01 17:06 -0500
http://bitbucket.org/pypy/pypy/changeset/e54e45812b77/

Log:    A branch to allow JITing of python when there's a tracehook
        installed.

diff --git a/pypy/module/pypyjit/interp_jit.py 
b/pypy/module/pypyjit/interp_jit.py
--- a/pypy/module/pypyjit/interp_jit.py
+++ b/pypy/module/pypyjit/interp_jit.py
@@ -37,26 +37,17 @@
 def set_jitcell_at(newcell, next_instr, is_being_profiled, bytecode):
     bytecode.jit_cells[next_instr, is_being_profiled] = newcell
 
-def confirm_enter_jit(next_instr, is_being_profiled, bytecode, frame, ec):
-    return (frame.w_f_trace is None and
-            ec.w_tracefunc is None)
-
-def can_never_inline(next_instr, is_being_profiled, bytecode):
-    return False
-
 def should_unroll_one_iteration(next_instr, is_being_profiled, bytecode):
     return (bytecode.co_flags & CO_GENERATOR) != 0
 
 class PyPyJitDriver(JitDriver):
     reds = ['frame', 'ec']
-    greens = ['next_instr', 'is_being_profiled', 'pycode']
+    greens = ['next_instr', 'is_being_profiled', 'pycode', 'w_f_trace', 
'w_tracefunc']
     virtualizables = ['frame']
 
 pypyjitdriver = PyPyJitDriver(get_printable_location = get_printable_location,
                               get_jitcell_at = get_jitcell_at,
                               set_jitcell_at = set_jitcell_at,
-                              confirm_enter_jit = confirm_enter_jit,
-                              can_never_inline = can_never_inline,
                               should_unroll_one_iteration =
                               should_unroll_one_iteration,
                               name='pypyjit')
@@ -71,7 +62,7 @@
             while True:
                 pypyjitdriver.jit_merge_point(ec=ec,
                     frame=self, next_instr=next_instr, pycode=pycode,
-                    is_being_profiled=is_being_profiled)
+                    is_being_profiled=is_being_profiled, 
w_f_trace=self.w_f_trace, w_tracefunc=ec.w_tracefunc)
                 co_code = pycode.co_code
                 self.valuestackdepth = hint(self.valuestackdepth, promote=True)
                 next_instr = self.handle_bytecode(co_code, next_instr, ec)
@@ -94,7 +85,7 @@
         #
         pypyjitdriver.can_enter_jit(frame=self, ec=ec, next_instr=jumpto,
                                     pycode=self.getcode(),
-                                    is_being_profiled=self.is_being_profiled)
+                                    is_being_profiled=self.is_being_profiled, 
w_f_trace=self.w_f_trace, w_tracefunc=ec.w_tracefunc)
         return jumpto
 
 def _get_adapted_tick_counter():
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to