[pypy-commit] pypy improve-heap-caching-tracing: more cases to not invalidate the cache

cfbolz noreply at buildbot.pypy.org
Sun Sep 4 13:48:27 CEST 2011


Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: improve-heap-caching-tracing
Changeset: r47073:9b4b10daa887
Date: 2011-09-04 13:38 +0200
http://bitbucket.org/pypy/pypy/changeset/9b4b10daa887/

Log:	more cases to not invalidate the cache

diff --git a/pypy/jit/metainterp/heapcache.py b/pypy/jit/metainterp/heapcache.py
--- a/pypy/jit/metainterp/heapcache.py
+++ b/pypy/jit/metainterp/heapcache.py
@@ -24,6 +24,12 @@
             return
         if opnum == rop.SETARRAYITEM_GC:
             return
+        if opnum == rop.SETFIELD_RAW:
+            return
+        if opnum == rop.SETARRAYITEM_RAW:
+            return
+        if rop._OVF_FIRST <= opnum <= rop._OVF_LAST:
+            return
         if rop._NOSIDEEFFECT_FIRST <= opnum <= rop._NOSIDEEFFECT_LAST:
             return
         if opnum == rop.CALL:
diff --git a/pypy/jit/metainterp/test/test_heapcache.py b/pypy/jit/metainterp/test/test_heapcache.py
--- a/pypy/jit/metainterp/test/test_heapcache.py
+++ b/pypy/jit/metainterp/test/test_heapcache.py
@@ -213,6 +213,9 @@
         h.setarrayitem(box1, descr1, index1, box2)
         h.setarrayitem(box1, descr1, index2, box4)
         h.invalidate_caches(rop.INT_ADD, None)
+        h.invalidate_caches(rop.INT_ADD_OVF, None)
+        h.invalidate_caches(rop.SETFIELD_RAW, None)
+        h.invalidate_caches(rop.SETARRAYITEM_RAW, None)
         assert h.getfield(box1, descr1) is box2
         assert h.getarrayitem(box1, descr1, index1) is box2
         assert h.getarrayitem(box1, descr1, index2) is box4


More information about the pypy-commit mailing list