[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