Author: Maciej Fijalkowski <fij...@gmail.com> Branch: share-guard-info Changeset: r79851:c2366bb48cc4 Date: 2015-09-26 12:44 +0200 http://bitbucket.org/pypy/pypy/changeset/c2366bb48cc4/
Log: a fix with an explanation diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py --- a/rpython/jit/metainterp/optimizeopt/optimizer.py +++ b/rpython/jit/metainterp/optimizeopt/optimizer.py @@ -583,10 +583,13 @@ self.exception_might_have_happened = True if ((op.has_no_side_effect() or op.is_guard() or op.is_jit_debug() or op.is_ovf()) and - not self.is_call_pure_pure_canraise(op)): + not self.is_call_pure_pure_canraise(op) and + not op.getopnum() == rop.ENTER_PORTAL_FRAME): + # we can't share across ENTER_PORTAL_FRAME because if we later + # change the decision of inlining into that portal frame, we + # won't follow the same path through blackhole pass else: - #assert self.origin_jitcode is None self._last_guard_op = None self._really_emitted_operation = op self._newoperations.append(op) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit