[pypy-svn] pypy out-of-line-guards-2: An extra passing test.
arigo
commits-noreply at bitbucket.org
Mon May 2 22:41:17 CEST 2011
Author: Armin Rigo <arigo at tunes.org>
Branch: out-of-line-guards-2
Changeset: r43853:11566ad5e0d7
Date: 2011-05-02 17:30 +0200
http://bitbucket.org/pypy/pypy/changeset/11566ad5e0d7/
Log: An extra passing test.
diff --git a/pypy/jit/metainterp/test/test_optimizeopt.py b/pypy/jit/metainterp/test/test_optimizeopt.py
--- a/pypy/jit/metainterp/test/test_optimizeopt.py
+++ b/pypy/jit/metainterp/test/test_optimizeopt.py
@@ -5786,3 +5786,28 @@
jump(i0)
"""
self.optimize_loop(ops, expected)
+
+ def test_call_may_force_invalidated_guards_reload(self):
+ ops = """
+ [i0a, i0b]
+ quasiimmut_field(ConstPtr(myptr), descr=quasiimmutdescr)
+ guard_not_invalidated() []
+ i1 = getfield_gc(ConstPtr(myptr), descr=quasifielddescr)
+ call_may_force(i0b, descr=mayforcevirtdescr)
+ quasiimmut_field(ConstPtr(myptr), descr=quasiimmutdescr)
+ guard_not_invalidated() []
+ i2 = getfield_gc(ConstPtr(myptr), descr=quasifielddescr)
+ i3 = escape(i1)
+ i4 = escape(i2)
+ jump(i3, i4)
+ """
+ expected = """
+ [i0a, i0b]
+ guard_not_invalidated() []
+ call_may_force(i0b, descr=mayforcevirtdescr)
+ guard_not_invalidated() []
+ i3 = escape(-4247)
+ i4 = escape(-4247)
+ jump(i3, i4)
+ """
+ self.optimize_loop(ops, expected)
More information about the Pypy-commit
mailing list