Author: Hakan Ardo <ha...@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 = {} _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit