[pypy-svn] r78480 - pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test
hakanardo at codespeak.net
hakanardo at codespeak.net
Fri Oct 29 17:28:58 CEST 2010
Author: hakanardo
Date: Fri Oct 29 17:28:51 2010
New Revision: 78480
Modified:
pypy/branch/jit-unroll-loops/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
(armin, hakanardo) fixed tests
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 Fri Oct 29 17:28:51 2010
@@ -242,7 +242,8 @@
assert equaloplists(optimized.operations,
expected.operations, False, remap)
- def optimize_loop(self, ops, spectext, optops, checkspecnodes=True):
+ def optimize_loop(self, ops, spectext, optops, checkspecnodes=True,
+ expected_preamble=None):
loop = self.parse(ops)
#
if checkspecnodes:
@@ -259,6 +260,7 @@
#
self.loop = loop
loop.preamble = TreeLoop('preamble')
+ loop.preamble.inputargs = loop.inputargs
metainterp_sd = FakeMetaInterpStaticData(self.cpu)
if hasattr(self, 'vrefinfo'):
metainterp_sd.virtualref_info = self.vrefinfo
@@ -270,20 +272,20 @@
print '\n'.join([str(o) for o in loop.operations])
self.assert_equal(loop, expected)
+ if expected_preamble:
+ expected = self.parse(expected_preamble)
+ self.assert_equal(loop.preamble, expected)
+
def test_simple(self):
ops = """
- [i]
- i0 = int_sub(i, 1)
- guard_value(i0, 0) [i0]
- jump(i)
- """
- expected = """
- [i]
- i0 = int_sub(i, 1)
- guard_value(i0, 0) [i0]
- jump(1)
+ []
+ f = escape()
+ f0 = float_sub(f, 1.0)
+ guard_value(f0, 0.0) [f0]
+ escape(f)
+ jump()
"""
- self.optimize_loop(ops, 'Not', expected)
+ self.optimize_loop(ops, '', ops)
def test_constant_propagate(self):
ops = """
@@ -363,12 +365,16 @@
guard_class(p0, ConstClass(node_vtable)) []
jump(p0)
"""
- expected = """
+ preamble = """
[p0]
guard_class(p0, ConstClass(node_vtable)) []
jump(p0)
"""
- self.optimize_loop(ops, 'Not', expected)
+ expected = """
+ [p0]
+ jump(p0)
+ """
+ self.optimize_loop(ops, 'Not', expected, expected_preamble=preamble)
def test_remove_guard_class_2(self):
ops = """
@@ -3718,41 +3724,48 @@
def test_bound_eq(self):
ops = """
- [i0, i1]
+ []
+ i0 = escape()
+ i1 = escape()
i2 = int_le(i0, 4)
guard_true(i2) []
i3 = int_eq(i0, i1)
guard_true(i3) []
i4 = int_lt(i1, 5)
guard_true(i4) []
- jump(i0, i1)
+ jump()
"""
expected = """
- [i0, i1]
+ []
+ i0 = escape()
+ i1 = escape()
i2 = int_le(i0, 4)
guard_true(i2) []
i3 = int_eq(i0, i1)
guard_true(i3) []
- jump(i0, i1)
+ jump()
"""
- self.optimize_loop(ops, 'Not, Not', expected)
+ self.optimize_loop(ops, '', expected)
def test_bound_eq_const(self):
ops = """
- [i0]
+ []
+ i0 = escape()
i1 = int_eq(i0, 7)
guard_true(i1) []
i2 = int_add(i0, 3)
- jump(i2)
+ escape(i2)
+ jump()
"""
expected = """
- [i0]
+ []
+ i0 = escape()
i1 = int_eq(i0, 7)
guard_true(i1) []
- jump(10)
-
+ escape(10)
+ jump()
"""
- self.optimize_loop(ops, 'Not', expected)
+ self.optimize_loop(ops, '', expected)
def test_bound_eq_const_not(self):
ops = """
More information about the Pypy-commit
mailing list