[pypy-commit] pypy jit-targets: recursion support
hakanardo
noreply at buildbot.pypy.org
Tue Nov 8 10:27:09 CET 2011
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-targets
Changeset: r48909:df9f538c4ae9
Date: 2011-11-08 10:15 +0100
http://bitbucket.org/pypy/pypy/changeset/df9f538c4ae9/
Log: recursion support
diff --git a/pypy/jit/metainterp/pyjitpl.py b/pypy/jit/metainterp/pyjitpl.py
--- a/pypy/jit/metainterp/pyjitpl.py
+++ b/pypy/jit/metainterp/pyjitpl.py
@@ -2025,7 +2025,8 @@
num_green_args = self.jitdriver_sd.num_green_args
greenkey = original_boxes[:num_green_args]
if not self.partial_trace:
- assert self.get_procedure_token(greenkey) == None # FIXME: recursion?
+ assert self.get_procedure_token(greenkey) is None or \
+ self.get_procedure_token(greenkey).target_tokens is None
if self.partial_trace:
target_token = compile.compile_retrace(self, greenkey, start,
original_boxes[num_green_args:],
@@ -2051,6 +2052,8 @@
target_jitcell_token = self.get_procedure_token(greenkey)
if not target_jitcell_token:
return
+ if not target_jitcell_token.target_tokens:
+ return
self.history.record(rop.JUMP, live_arg_boxes[num_green_args:], None,
descr=target_jitcell_token)
diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainterp/test/test_ajit.py
--- a/pypy/jit/metainterp/test/test_ajit.py
+++ b/pypy/jit/metainterp/test/test_ajit.py
@@ -3667,3 +3667,6 @@
assert x == -42
x = self.interp_operations(f, [1000, 1], translationoptions=topt)
assert x == 999
+
+ def test_retracing_bridge_from_interpreter_to_finnish(self):
+ assert False # FIXME
More information about the pypy-commit
mailing list