[pypy-commit] pypy vecopt: could end in a finish operation, crashed the optimizer
plan_rich
noreply at buildbot.pypy.org
Mon Aug 3 08:24:56 CEST 2015
Author: Richard Plangger <rich at pasra.at>
Branch: vecopt
Changeset: r78751:c83f61da5f2d
Date: 2015-08-03 08:22 +0200
http://bitbucket.org/pypy/pypy/changeset/c83f61da5f2d/
Log: could end in a finish operation, crashed the optimizer
diff --git a/rpython/jit/metainterp/history.py b/rpython/jit/metainterp/history.py
--- a/rpython/jit/metainterp/history.py
+++ b/rpython/jit/metainterp/history.py
@@ -855,14 +855,13 @@
def append_loop(self, loop, all_target_tokens):
# append e.g. the peeled loop to this loop!
- label, jump = loop.operations[0], loop.operations[-1]
- assert label.getopnum() == rop.LABEL
- assert jump.getopnum() == rop.JUMP
+ jump = loop.operations[-1]
+ assert jump.getdescr() is not None
target_token = None
i = 0
# adds all target token until the one is found that jumps from the
# last instruction to the label
- while target_token is not jump.getdescr():
+ while i < len(loop.operations) and target_token is not jump.getdescr():
# there is another label
op = loop.operations[i]
if op.getopnum() == rop.LABEL:
More information about the pypy-commit
mailing list