[pypy-commit] pypy default: Test that loops automatically unroll if they are written anywhere in the
arigo
pypy.commits at gmail.com
Mon Sep 19 16:08:00 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r87238:3ebb2e0f8d2b
Date: 2016-09-19 22:07 +0200
http://bitbucket.org/pypy/pypy/changeset/3ebb2e0f8d2b/
Log: Test that loops automatically unroll if they are written anywhere in
the same function as one that contains a jit_merge_point()
diff --git a/rpython/jit/metainterp/test/test_ajit.py b/rpython/jit/metainterp/test/test_ajit.py
--- a/rpython/jit/metainterp/test/test_ajit.py
+++ b/rpython/jit/metainterp/test/test_ajit.py
@@ -4558,3 +4558,20 @@
self.meta_interp(f, [])
self.check_resops(guard_nonnull=0)
+ def test_loop_before_main_loop(self):
+ fdriver = JitDriver(greens=[], reds='auto')
+ gdriver = JitDriver(greens=[], reds='auto')
+ def f(i, j):
+ while j > 0: # this loop unrolls because it is in the same
+ j -= 1 # function as a jit_merge_point()
+ while i > 0:
+ fdriver.jit_merge_point()
+ i -= 1
+ def g(i, j, k):
+ while k > 0:
+ gdriver.jit_merge_point()
+ f(i, j)
+ k -= 1
+
+ self.meta_interp(g, [5, 5, 5])
+ self.check_resops(guard_true=10) # 5 unrolled, plus 5 unrelated
More information about the pypy-commit
mailing list