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

arigo at codespeak.net arigo at codespeak.net
Fri Feb 27 12:15:10 CET 2009


Author: arigo
Date: Fri Feb 27 12:15:10 2009
New Revision: 62217

Modified:
   pypy/branch/pyjitpl5/pypy/jit/metainterp/optimize.py
   pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_send.py
Log:
Fix test_indirect_call_unknown_object_1.


Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/optimize.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/optimize.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/optimize.py	Fri Feb 27 12:15:10 2009
@@ -435,8 +435,10 @@
             elif opname == 'guard_value':
                 instnode = self.getnode(op.args[0])
                 assert isinstance(op.args[1], Const)
-                self.nodes[instnode.source] = InstanceNode(op.args[1],
-                                                           const=True)
+                # XXX need to think more about the 'const' attribute
+                #     (see test_send.test_indirect_call_unknown_object_1)
+                #self.nodes[instnode.source] = InstanceNode(op.args[1],
+                #                                           const=True)
                 continue
             elif opname == 'guard_nonvirtualized':
                 instnode = self.getnode(op.args[0])
@@ -669,14 +671,14 @@
                 if opname == 'guard_true' or opname == 'guard_false':
                     if self.nodes[op.args[0]].const:
                         continue
-                if (opname == 'guard_no_exception' or
-                    opname == 'guard_exception'):
+                elif (opname == 'guard_no_exception' or
+                      opname == 'guard_exception'):
                     if not exception_might_have_happened:
                         continue
                     exception_might_have_happened = False
-                if opname == 'guard_value':
-                    if (self.nodes[op.args[0]].const and
-                        self.nodes[op.args[1]].const):
+                elif opname == 'guard_value':
+                    if self.nodes[op.args[0]].const:
+                        assert isinstance(op.args[1], Const)
                         continue
                 op = self.optimize_guard(op)
                 newoperations.append(op)

Modified: pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_send.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_send.py	(original)
+++ pypy/branch/pyjitpl5/pypy/jit/metainterp/test/test_send.py	Fri Feb 27 12:15:10 2009
@@ -287,7 +287,6 @@
         self.check_loops(int_add=0, int_mul=1, guard_class=0)
 
     def test_indirect_call_unknown_object_1(self):
-        py.test.skip("XXX fix me")
         myjitdriver = JitDriver(greens = [], reds = ['x', 'y'])
         def getvalue2():
             return 2



More information about the Pypy-commit mailing list