[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