[pypy-svn] r68171 - in pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp: . test
fijal at codespeak.net
fijal at codespeak.net
Mon Oct 5 15:38:18 CEST 2009
Author: fijal
Date: Mon Oct 5 15:38:17 2009
New Revision: 68171
Modified:
pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_virtual.py
pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/warmspot.py
Log:
A test and fix a bug
Modified: pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_virtual.py
==============================================================================
--- pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_virtual.py (original)
+++ pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_virtual.py Mon Oct 5 15:38:17 2009
@@ -33,6 +33,23 @@
self.check_loops(new=0, new_with_vtable=0,
getfield_gc=0, setfield_gc=0)
+ def test_virtualized_float(self):
+ myjitdriver = JitDriver(greens = [], reds = ['n', 'node'])
+ def f(n):
+ node = self._new()
+ node.floatval = 0.0
+ while n > 0:
+ myjitdriver.can_enter_jit(n=n, node=node)
+ myjitdriver.jit_merge_point(n=n, node=node)
+ next = self._new()
+ next.floatval = node.floatval + .5
+ n -= 1
+ return node.floatval
+ res = self.meta_interp(f, [10])
+ assert res == f(10)
+ self.check_loop_count(1)
+ self.check_loops(new=0, float_add=1)
+
def test_virtualized_2(self):
myjitdriver = JitDriver(greens = [], reds = ['n', 'node'])
def f(n):
@@ -339,6 +356,7 @@
# Run 2: all the tests use lltype.malloc to make a NODE
NODE = lltype.GcStruct('NODE', ('value', lltype.Signed),
+ ('floatval', lltype.Float),
('extra', lltype.Signed))
class TestLLtype_NotObject(VirtualTests, LLJitMixin):
@@ -352,6 +370,7 @@
OONODE = ootype.Instance('NODE', ootype.ROOT, {})
OONODE._add_fields({'value': ootype.Signed,
+ 'floatval' : ootype.Float,
'extra': ootype.Signed})
class TestOOtype_NotObject(VirtualTests, OOJitMixin):
@@ -367,6 +386,7 @@
# (same as Run 2 but it is part of the OBJECT hierarchy)
NODE2 = lltype.GcStruct('NODE2', ('parent', rclass.OBJECT),
+ ('floatval', lltype.Float),
('value', lltype.Signed),
('extra', lltype.Signed))
Modified: pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/warmspot.py
==============================================================================
--- pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/warmspot.py (original)
+++ pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/warmspot.py Mon Oct 5 15:38:17 2009
@@ -434,7 +434,7 @@
return 'DoneWithThisFrameRef(%s)' % (self.result,)
class DoneWithThisFrameFloat(JitException):
- def __init__(self, cpu, result):
+ def __init__(self, result):
assert lltype.typeOf(result) is lltype.Float
self.result = result
def __str__(self):
More information about the Pypy-commit
mailing list