[pypy-svn] r79847 - in pypy/trunk/pypy/jit/metainterp: . test

arigo at codespeak.net arigo at codespeak.net
Mon Dec 6 16:01:53 CET 2010


Author: arigo
Date: Mon Dec  6 16:01:51 2010
New Revision: 79847

Modified:
   pypy/trunk/pypy/jit/metainterp/optimizefindnode.py
   pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py
Log:
Fix: optimizefindnode did not consider that constants were escaped!


Modified: pypy/trunk/pypy/jit/metainterp/optimizefindnode.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/optimizefindnode.py	(original)
+++ pypy/trunk/pypy/jit/metainterp/optimizefindnode.py	Mon Dec  6 16:01:51 2010
@@ -128,6 +128,7 @@
         assert isinstance(constbox, Const)
         node = InstanceNode()
         node.unique = UNIQUE_NO
+        node.escaped = True
         node.knownvaluebox = constbox
         self.nodes[box] = node
         return node

Modified: pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py	(original)
+++ pypy/trunk/pypy/jit/metainterp/test/test_optimizeopt.py	Mon Dec  6 16:01:51 2010
@@ -1957,11 +1957,11 @@
     def test_bug_4(self):
         ops = """
         [p9]
-        setfield_gc(ConstPtr(myptr), p9, descr=nextdescr)
         p30 = new_with_vtable(ConstClass(node_vtable))
+        setfield_gc(ConstPtr(myptr), p9, descr=nextdescr)
         jump(p30)
         """
-        self.optimize_loop(ops, 'Virtual(node_vtable)', Ellipsis)
+        self.optimize_loop(ops, 'Not', ops)
 
     def test_invalid_loop_1(self):
         ops = """



More information about the Pypy-commit mailing list