[pypy-svn] r68168 - in pypy/branch/merge-floats-via-sse2/pypy/jit: backend/llgraph metainterp/test
fijal at codespeak.net
fijal at codespeak.net
Mon Oct 5 14:26:15 CEST 2009
Author: fijal
Date: Mon Oct 5 14:26:14 2009
New Revision: 68168
Modified:
pypy/branch/merge-floats-via-sse2/pypy/jit/backend/llgraph/runner.py
pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_optimizefindnode.py
pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
More tests & fixes
Modified: pypy/branch/merge-floats-via-sse2/pypy/jit/backend/llgraph/runner.py
==============================================================================
--- pypy/branch/merge-floats-via-sse2/pypy/jit/backend/llgraph/runner.py (original)
+++ pypy/branch/merge-floats-via-sse2/pypy/jit/backend/llgraph/runner.py Mon Oct 5 14:26:14 2009
@@ -751,11 +751,16 @@
self.getarraylength = getarraylength
self.instanceof = instanceof
self._is_array_of_pointers = (history.getkind(TYPE) == 'ref')
+ self._is_array_of_floats = (history.getkind(TYPE) == 'float')
def is_array_of_pointers(self):
# for arrays, TYPE is the type of the array item.
return self._is_array_of_pointers
+ def is_array_of_floats(self):
+ # for arrays, TYPE is the type of the array item.
+ return self._is_array_of_floats
+
def __repr__(self):
return '<TypeDescr %s>' % self.TYPE._short_name()
Modified: pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_optimizefindnode.py
==============================================================================
--- pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_optimizefindnode.py (original)
+++ pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_optimizefindnode.py Mon Oct 5 14:26:14 2009
@@ -67,6 +67,7 @@
otherdescr = cpu.fielddescrof(NODE2, 'other')
arraydescr = cpu.arraydescrof(lltype.GcArray(lltype.Signed))
+ floatarraydescr = cpu.arraydescrof(lltype.GcArray(lltype.Float))
# a GcStruct not inheriting from OBJECT
S = lltype.GcStruct('TUPLE', ('a', lltype.Signed), ('b', lltype.Ptr(NODE)))
@@ -129,6 +130,7 @@
nodesize2 = cpu.typedescrof(NODE2)
arraydescr = cpu.arraydescrof(ootype.Array(ootype.Signed))
+ floatarraydescr = cpu.arraydescrof(ootype.Array(ootype.Float))
# a plain Record
S = ootype.Record({'a': ootype.Signed, 'b': NODE})
Modified: pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_optimizeopt.py (original)
+++ pypy/branch/merge-floats-via-sse2/pypy/jit/metainterp/test/test_optimizeopt.py Mon Oct 5 14:26:14 2009
@@ -902,6 +902,23 @@
"""
self.optimize_loop(ops, 'Not', expected)
+ def test_varray_float(self):
+ ops = """
+ [f1]
+ p1 = new_array(3, descr=floatarraydescr)
+ i3 = arraylen_gc(p1, descr=floatarraydescr)
+ guard_value(i3, 3) []
+ setarrayitem_gc(p1, 1, f1, descr=floatarraydescr)
+ setarrayitem_gc(p1, 0, 3.5, descr=floatarraydescr)
+ f2 = getarrayitem_gc(p1, 1, descr=floatarraydescr)
+ jump(f2)
+ """
+ expected = """
+ [f1]
+ jump(f1)
+ """
+ self.optimize_loop(ops, 'Not', expected)
+
def test_array_non_optimized(self):
ops = """
[i1, p0]
More information about the Pypy-commit
mailing list