[pypy-commit] pypy jit-usable_retrace_3: fallback properly on late failures
hakanardo
noreply at buildbot.pypy.org
Sat Dec 29 15:41:36 CET 2012
Author: Hakan Ardo <hakan at debian.org>
Branch: jit-usable_retrace_3
Changeset: r59619:2081b6a297d5
Date: 2012-12-29 15:36 +0100
http://bitbucket.org/pypy/pypy/changeset/2081b6a297d5/
Log: fallback properly on late failures
diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -244,12 +244,16 @@
try:
optimize_trace(metainterp_sd, preamble, jitdriver_sd.warmstate.enable_opts)
except InvalidLoop:
- assert False
+ assert loop_jitcell_token.target_tokens.pop() is loop.operations[0].getdescr()
+ raise InvalidLoop
assert loop.operations[0].getopnum() == rop.LABEL
assert preamble.operations[0].getopnum() == rop.LABEL
jumpop = preamble.operations[-1]
assert jumpop.getopnum() == rop.JUMP
+ if jumpop.getdescr() is not loop.operations[0].getdescr():
+ assert loop_jitcell_token.target_tokens.pop() is loop.operations[0].getdescr()
+ raise InvalidLoop
preamble.operations = preamble.operations[1:-1]
usedboxes = {}
More information about the pypy-commit
mailing list