[pypy-commit] pypy regalloc-playground: test for longevity computation

cfbolz pypy.commits at gmail.com
Sun Aug 20 13:09:48 EDT 2017


Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: regalloc-playground
Changeset: r92193:7f318c6a860c
Date: 2017-08-20 18:50 +0200
http://bitbucket.org/pypy/pypy/changeset/7f318c6a860c/

Log:	test for longevity computation

diff --git a/rpython/jit/backend/llsupport/test/test_regalloc_integration.py b/rpython/jit/backend/llsupport/test/test_regalloc_integration.py
--- a/rpython/jit/backend/llsupport/test/test_regalloc_integration.py
+++ b/rpython/jit/backend/llsupport/test/test_regalloc_integration.py
@@ -114,6 +114,7 @@
 
     def prepare_loop(self, ops):
         loop = self.parse(ops)
+        self.loop = loop
         regalloc = self.cpu.build_regalloc()
         regalloc.prepare_loop(loop.inputargs, loop.operations,
                               loop.original_jitcell_token, [])
@@ -406,6 +407,30 @@
         assert len(regalloc.rm.reg_bindings) == 0
         assert len(regalloc.fm.bindings) == 4
 
+    def test_longevity(self):
+        ops = """
+        [i0, i1, i2, i3, i4]
+        i5 = int_add(i0, i1)
+        i6 = int_is_true(i5)
+        guard_true(i6) [i0, i4]
+        jump(i5, i1, i2, i3, i5)
+        """
+        regalloc = self.prepare_loop(ops)
+        i0, i1, i2, i3, i4 = self.loop.inputargs
+        i5 = self.loop.operations[0]
+        longevity = regalloc.longevity
+        longevity[i0].last_usage == 2
+        longevity[i0].last_real_usage == 0
+        longevity[i1].last_usage == 3
+        longevity[i1].last_real_usage == 0
+        longevity[i2].last_usage == 3
+        longevity[i2].last_real_usage == 0
+        longevity[i3].last_usage == 3
+        longevity[i3].last_real_usage == 0
+        longevity[i4].last_usage == 3
+        longevity[i4].last_real_usage == -1
+        longevity[i5].last_usage == 3
+        longevity[i5].last_real_usage == 2
 
 class TestRegallocCompOps(BaseTestRegalloc):
 


More information about the pypy-commit mailing list