[pypy-commit] pypy share-guard-info: a fix with an explanation

fijal noreply at buildbot.pypy.org
Sat Sep 26 12:48:34 CEST 2015


Author: Maciej Fijalkowski <fijall at 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)


More information about the pypy-commit mailing list