[pypy-commit] pypy vmprof2: backend removes operations that have no side effects. Ignore those ops

fijal noreply at buildbot.pypy.org
Fri Apr 24 15:27:08 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: vmprof2
Changeset: r76921:b16af35250ab
Date: 2015-04-24 15:27 +0200
http://bitbucket.org/pypy/pypy/changeset/b16af35250ab/

Log:	backend removes operations that have no side effects. Ignore those
	ops explicitely in heap.py

diff --git a/rpython/jit/metainterp/optimizeopt/heap.py b/rpython/jit/metainterp/optimizeopt/heap.py
--- a/rpython/jit/metainterp/optimizeopt/heap.py
+++ b/rpython/jit/metainterp/optimizeopt/heap.py
@@ -293,6 +293,8 @@
             opnum == rop.UNICODESETITEM or       # no effect on GC struct/array
             opnum == rop.DEBUG_MERGE_POINT or    # no effect whatsoever
             opnum == rop.JIT_DEBUG or            # no effect whatsoever
+            opnum == rop.ENTER_PORTAL_FRAME or   # no effect whatsoever
+            opnum == rop.LEAVE_PORTAL_FRAME or   # no effect whatsoever
             opnum == rop.COPYSTRCONTENT or       # no effect on GC struct/array
             opnum == rop.COPYUNICODECONTENT):    # no effect on GC struct/array
             return
diff --git a/rpython/jit/metainterp/resoperation.py b/rpython/jit/metainterp/resoperation.py
--- a/rpython/jit/metainterp/resoperation.py
+++ b/rpython/jit/metainterp/resoperation.py
@@ -503,10 +503,6 @@
     'MARK_OPAQUE_PTR/1b',
     # this one has no *visible* side effect, since the virtualizable
     # must be forced, however we need to execute it anyway
-    'DEBUG_MERGE_POINT/*',      # debugging only
-    'ENTER_PORTAL_FRAME/2',     # debugging only
-    'LEAVE_PORTAL_FRAME/1',     # debugging only
-    'JIT_DEBUG/*',              # debugging only
     '_NOSIDEEFFECT_LAST', # ----- end of no_side_effect operations -----
 
     'INCREMENT_DEBUG_COUNTER/1',
@@ -525,6 +521,10 @@
     'UNICODESETITEM/3',
     'COND_CALL_GC_WB/1d',       # [objptr] (for the write barrier)
     'COND_CALL_GC_WB_ARRAY/2d', # [objptr, arrayindex] (write barr. for array)
+    'DEBUG_MERGE_POINT/*',      # debugging only
+    'ENTER_PORTAL_FRAME/2',     # debugging only
+    'LEAVE_PORTAL_FRAME/1',     # debugging only
+    'JIT_DEBUG/*',              # debugging only
     'VIRTUAL_REF_FINISH/2',   # removed before it's passed to the backend
     'COPYSTRCONTENT/5',       # src, dst, srcstart, dststart, length
     'COPYUNICODECONTENT/5',


More information about the pypy-commit mailing list