[pypy-svn] r65473 - in pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp: . test
fijal at codespeak.net
fijal at codespeak.net
Thu May 28 02:04:17 CEST 2009
Author: fijal
Date: Thu May 28 02:04:15 2009
New Revision: 65473
Modified:
pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/optimize2.py
pypy/branch/pyjitpl5-experiments/pypy/jit/metainterp/test/test_optimize2.py
Log:
a next test to fix
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 Thu May 28 02:04:15 2009
@@ -20,6 +20,7 @@
self.const = const
self.cls = None
self.cleanfields = {}
+ self.origfields = {}
self.arrayfields = {}
self.virtualized = False
self.allocated_in_loop = False
@@ -253,7 +254,8 @@
field = op.descr
if field not in instnode.vdesc.virtuals:
return False
- spec.getnode(op.result).virtualized = True
+ node = spec.getnode(op.result)
+ node.virtualized = True
return False
@staticmethod
@@ -270,7 +272,7 @@
instnode.virtualized = True
instnode.vdesc = op.vdesc
return False
-
+
@staticmethod
def optimize_guard_nonvirtualized(op, spec):
return True
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 Thu May 28 02:04:15 2009
@@ -427,9 +427,36 @@
self.assert_equal(self.optimize(pre_op, [SimpleVirtualOpt()]),
expected)
+
+ def test_virtual_with_virtualizable_escapes(self):
+ py.test.skip("FIXME")
+ pre_op = """
+ [p0]
+ p1 = new_with_vtable(ConstClass(node_vtable))
+ setfield_gc(p1, 1, descr=nodedescr)
+ guard_nonvirtualized(p0, vdesc=vdesc)
+ fail()
+ p2 = getfield_gc(p0, descr=list_node_desc)
+ setarrayitem_gc(p2, 0, p1)
+ p3 = getarrayitem_gc(p2, 0)
+ fail(p3)
+ """
+ expected = """
+ [p0]
+ p1 = new_with_vtable(ConstClass(node_vtable))
+ setfield_gc(p1, 1, descr=nodedescr)
+ p2 = getfield_gc(p0, descr=list_node_desc)
+ fail(p1)
+ """
+ self.assert_equal(self.optimize(pre_op, [SimpleVirtualizableOpt(),
+ SimpleVirtualOpt()]),
+ expected)
+
class TestLLtype(LLtypeMixin, BaseTestOptimize2):
pass
class TestOOtype(OOtypeMixin, BaseTestOptimize2):
def test_virtual_with_virtualizable(self):
py.test.skip("XXX")
+
+ test_virtual_with_virtualizable_escapes = test_virtual_with_virtualizable
More information about the Pypy-commit
mailing list