[pypy-svn] r65435 - in pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp: . test

fijal at codespeak.net fijal at codespeak.net
Tue May 26 21:16:14 CEST 2009


Author: fijal
Date: Tue May 26 21:16:14 2009
New Revision: 65435

Modified:
   pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py
   pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py
Log:
remove the hack about guard_nonvirtualized


Modified: pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py
==============================================================================
--- pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py	(original)
+++ pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py	Tue May 26 21:16:14 2009
@@ -94,6 +94,13 @@
             newboxes.append(box)
         return newboxes
 
+    def _guard_for_node(self, node):
+        gop = ResOperation(rop.GUARD_NONVIRTUALIZED,
+                           [node.source], None)
+        gop.vdesc = node.vdesc
+        gop.suboperations = [ResOperation(rop.FAIL, [], None)]
+        return gop
+
     def optimize_guard(self, op):
         if op.is_foldable_guard():
             for arg in op.args:
@@ -109,20 +116,14 @@
         op.suboperations = []
         for node, d in self.additional_stores.iteritems():
             for field, fieldnode in d.iteritems():
-                gop = ResOperation(rop.GUARD_NONVIRTUALIZED,
-                                   [node.source, node.cls], None)
-                gop.vdesc = node.vdesc
-                gop.suboperations = [ResOperation(rop.FAIL, [], None)]
+                gop = self._guard_for_node(node)
                 op.suboperations.append(gop)
                 op.suboperations.append(ResOperation(rop.SETFIELD_GC,
                     [node.source, fieldnode.source], None, field))
         for node, d in self.additional_setarrayitems.iteritems():
             for field, (fieldnode, descr) in d.iteritems():
                 box = fieldnode.source
-                gop = ResOperation(rop.GUARD_NONVIRTUALIZED,
-                                   [node.source, node.cls], None)
-                gop.suboperations = [ResOperation(rop.FAIL, [], None)]
-                gop.vdesc = node.vdesc
+                gop = self._guard_for_node(node)
                 op.suboperations.append(gop) 
                 op.suboperations.append(ResOperation(rop.SETARRAYITEM_GC,
                              [node.source, ConstInt(field), box], None, descr))

Modified: pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py
==============================================================================
--- pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py	(original)
+++ pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py	Tue May 26 21:16:14 2009
@@ -187,7 +187,7 @@
         i1 = getfield_gc(p0, descr=field_desc)
         i2 = getfield_gc(p0, descr=other_field_desc)
         guard_true(i2)
-            guard_nonvirtualized(p0, ConstClass(xy_vtable))
+            guard_nonvirtualized(p0)
                 fail()
             setfield_gc(p0, i2, descr=field_desc)
             fail()
@@ -256,7 +256,7 @@
         i2 = int_add(i0, i0)
         i3 = int_is_true(i2)
         guard_true(i3)
-            guard_nonvirtualized(p1, None)
+            guard_nonvirtualized(p1)
                 fail()
             setarrayitem_gc(p1, 0, i0, descr=array_descr)
             fail()
@@ -286,7 +286,7 @@
         i4 = int_add(i0, i1)
         i5 = int_is_true(i4)
         guard_true(i5)
-            guard_nonvirtualized(p1, None)
+            guard_nonvirtualized(p1)
                 fail()
             setarrayitem_gc(p1, 0, i1, descr=array_descr)
             fail()



More information about the Pypy-commit mailing list