[pypy-svn] r78584 - pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test
hakanardo at codespeak.net
hakanardo at codespeak.net
Sun Oct 31 11:29:03 CET 2010
Author: hakanardo
Date: Sun Oct 31 11:29:02 2010
New Revision: 78584
Modified:
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
(cfbolz, hakanardo) Test that caches are not invalidated on setarrayitem_raw
Modified: pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py (original)
+++ pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py Sun Oct 31 11:29:02 2010
@@ -3544,6 +3544,7 @@
ops = """
[p4, p7, i30]
p16 = getfield_gc(p4, descr=valuedescr)
+ p17 = getarrayitem_gc(p4, 1, descr=arraydescr)
guard_value(p16, ConstPtr(myptr), descr=<Guard3>) []
i1 = getfield_raw(p7, descr=nextdescr)
i2 = int_add(i1, i30)
@@ -3561,6 +3562,28 @@
"""
self.optimize_loop(ops, expected, ops)
+ def test_setgetarrayitem_raw(self):
+ ops = """
+ [p4, p7, i30]
+ p16 = getfield_gc(p4, descr=valuedescr)
+ guard_value(p16, ConstPtr(myptr), descr=<Guard3>) []
+ p17 = getarrayitem_gc(p4, 1, descr=arraydescr)
+ i1 = getarrayitem_raw(p7, 1, descr=arraydescr)
+ i2 = int_add(i1, i30)
+ setarrayitem_raw(p7, 1, 7, descr=arraydescr)
+ setarrayitem_raw(p7, 1, i2, descr=arraydescr)
+ jump(p4, p7, i30)
+ """
+ expected = """
+ [p4, p7, i30]
+ i1 = getarrayitem_raw(p7, 1, descr=arraydescr)
+ i2 = int_add(i1, i30)
+ setarrayitem_raw(p7, 1, 7, descr=arraydescr)
+ setarrayitem_raw(p7, 1, i2, descr=arraydescr)
+ jump(p4, p7, i30)
+ """
+ self.optimize_loop(ops, expected, ops)
+
def test_pure(self):
ops = """
[p42]
@@ -3672,7 +3695,7 @@
guard_true(i4) []
jump(i0)
"""
- expected = """
+ preamble = """
[i0]
i1 = int_sub_ovf(1, i0)
guard_no_overflow() []
@@ -3681,7 +3704,11 @@
i3 = int_sub(1, i0)
jump(i0)
"""
- self.optimize_loop(ops, expected)
+ expected = """
+ [i0]
+ jump(i0)
+ """
+ self.optimize_loop(ops, expected, preamble)
def test_bound_eq(self):
ops = """
More information about the Pypy-commit
mailing list