Author: Alex Gaynor <alex.gay...@gmail.com>
Branch: python-loop-unroll
Changeset: r65463:eba8aacbc617
Date: 2013-07-18 10:08 -0700
http://bitbucket.org/pypy/pypy/changeset/eba8aacbc617/

Log:    Attempt to write a test

diff --git a/pypy/module/pypyjit/test_pypy_c/test_misc.py 
b/pypy/module/pypyjit/test_pypy_c/test_misc.py
--- a/pypy/module/pypyjit/test_pypy_c/test_misc.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_misc.py
@@ -408,3 +408,30 @@
         log = self.run(main, [300])
         loop, = log.loops_by_id("long_op")
         assert len(loop.ops_by_id("long_op")) == 0
+
+    def test_explicit_loop_unrolling(self):
+        def main(n):
+            class A(object):
+                def __init__(self):
+                    self.a = 0
+                    self.b = 0
+
+            i = 0
+            while i < n:
+                a = A()
+                for attr in ["a", "b"]:
+                    setattr(a, attr, getattr(a, attr) + 1)
+                i += a.b
+
+        log = self.run(main, [300])
+        loop, = log.loops_by_filename(self.filepath)
+        assert loop.match("""
+        label(..., descr=TargetToken(4370600008))
+        i48 = int_lt(i43, i30)
+        guard_true(i48, descr=...)
+        guard_not_invalidated(descr=...)
+        p49 = force_token()
+        i50 = int_add(i43, 1)
+        --TICK--
+        jump(..., descr=TargetToken(4370600008))
+        """)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to