[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