[pypy-commit] pypy improve-heap-caching-tracing: more cases where invalidation is not necessary
cfbolz
noreply at buildbot.pypy.org
Sun Sep 4 13:48:28 CEST 2011
Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: improve-heap-caching-tracing
Changeset: r47074:46e1033f28fd
Date: 2011-09-04 13:48 +0200
http://bitbucket.org/pypy/pypy/changeset/46e1033f28fd/
Log: more cases where invalidation is not necessary
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
@@ -32,7 +32,7 @@
return
if rop._NOSIDEEFFECT_FIRST <= opnum <= rop._NOSIDEEFFECT_LAST:
return
- if opnum == rop.CALL:
+ if opnum == rop.CALL or opnum == rop.CALL_LOOPINVARIANT:
effectinfo = descr.get_extra_info()
ef = effectinfo.extraeffect
if ef == effectinfo.EF_LOOPINVARIANT or \
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
@@ -226,6 +226,8 @@
assert h.getarrayitem(box1, descr1, index1) is box2
assert h.getarrayitem(box1, descr1, index2) is box4
+ h.invalidate_caches(
+ rop.CALL_LOOPINVARIANT, FakeCallDescr(FakeEffektinfo.EF_LOOPINVARIANT))
h.invalidate_caches(
rop.CALL, FakeCallDescr(FakeEffektinfo.EF_RANDOM_EFFECTS))
More information about the pypy-commit
mailing list