[pypy-commit] pypy optresult-unroll: (fijal, arigo) fix more tests

fijal noreply at buildbot.pypy.org
Wed Aug 12 18:56:09 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r78944:bedcdcb6f10f
Date: 2015-08-12 18:11 +0200
http://bitbucket.org/pypy/pypy/changeset/bedcdcb6f10f/

Log:	(fijal, arigo) fix more tests

diff --git a/rpython/jit/metainterp/optimizeopt/rewrite.py b/rpython/jit/metainterp/optimizeopt/rewrite.py
--- a/rpython/jit/metainterp/optimizeopt/rewrite.py
+++ b/rpython/jit/metainterp/optimizeopt/rewrite.py
@@ -420,6 +420,7 @@
         resvalue = self.loop_invariant_results.get(key, None)
         if resvalue is not None:
             resvalue = self.optimizer.force_op_from_preamble(resvalue)
+            self.loop_invariant_results[key] = resvalue
             self.make_equal_to(op, resvalue)
             self.last_emitted_operation = REMOVED
             return
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -3953,20 +3953,20 @@
         p3 = force_token()
         #
         p2 = new_with_vtable(descr=vref_descr)
+        setfield_gc(p2, p3, descr=virtualtokendescr)
         setfield_gc(p2, NULL, descr=virtualforceddescr)
-        setfield_gc(p2, p3, descr=virtualtokendescr)
         setfield_gc(p0, p2, descr=nextdescr)
         #
         call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [i1]
         #
         setfield_gc(p0, NULL, descr=nextdescr)
+        setfield_gc(p2, NULL, descr=virtualtokendescr)
         p1 = new_with_vtable(descr=nodesize)
         p1b = new_with_vtable(descr=nodesize)
         setfield_gc(p1b, 252, descr=valuedescr)
         setfield_gc(p1, p1b, descr=nextdescr)
         setfield_gc(p2, p1, descr=virtualforceddescr)
-        setfield_gc(p2, NULL, descr=virtualtokendescr)
         jump(p0, i1)
         """
         self.optimize_loop(ops, expected, expected)
@@ -3993,20 +3993,20 @@
         p3 = force_token()
         #
         p2 = new_with_vtable(descr=vref_descr)
+        setfield_gc(p2, p3, descr=virtualtokendescr)
         setfield_gc(p2, NULL, descr=virtualforceddescr)
-        setfield_gc(p2, p3, descr=virtualtokendescr)
         setfield_gc(p0, p2, descr=nextdescr)
         #
         call_may_force_n(i1, descr=mayforcevirtdescr)
         guard_not_forced() [p2, i1]
         #
         setfield_gc(p0, NULL, descr=nextdescr)
+        setfield_gc(p2, NULL, descr=virtualtokendescr)
         p1 = new_with_vtable(descr=nodesize)
         p1b = new_with_vtable(descr=nodesize)
         setfield_gc(p1b, i1, descr=valuedescr)
         setfield_gc(p1, p1b, descr=nextdescr)
         setfield_gc(p2, p1, descr=virtualforceddescr)
-        setfield_gc(p2, NULL, descr=virtualtokendescr)
         jump(p0, i1)
         """
         # the point of this test is that 'i1' should show up in the fail_args
@@ -4081,8 +4081,8 @@
         [i1]
         p3 = force_token()
         p2 = new_with_vtable(descr=vref_descr)
+        setfield_gc(p2, p3, descr=virtualtokendescr)
         setfield_gc(p2, NULL, descr=virtualforceddescr)
-        setfield_gc(p2, p3, descr=virtualtokendescr)
         escape_n(p2)
         p1 = new_with_vtable(descr=nodesize)
         setfield_gc(p2, p1, descr=virtualforceddescr)
@@ -4106,9 +4106,9 @@
         expected = """
         [i1, p1]
         p3 = force_token()
-        p2 = new_with_vtable(ConstClass(jit_virtual_ref_vtable))
+        p2 = new_with_vtable(descr=vref_descr)
+        setfield_gc(p2, p3, descr=virtualtokendescr)
         setfield_gc(p2, NULL, descr=virtualforceddescr)
-        setfield_gc(p2, p3, descr=virtualtokendescr)
         escape_n(p2)
         setfield_gc(p2, p1, descr=virtualforceddescr)
         setfield_gc(p2, NULL, descr=virtualtokendescr)
@@ -4888,9 +4888,9 @@
         ops = """
         [p4, p7, i30]
         p16 = getfield_gc_r(p4, descr=valuedescr)
-        p17 = getarrayitem_gc_r(p4, 1, descr=arraydescr)
+        p17 = getarrayitem_gc_r(p4, 1, descr=gcarraydescr)
         guard_value(p16, ConstPtr(myptr), descr=<Guard3>) []
-        i1 = getfield_raw(p7, descr=nextdescr)
+        i1 = getfield_raw_i(p7, descr=nextdescr)
         i2 = int_add(i1, i30)
         setfield_raw(p7, 7, descr=nextdescr)
         setfield_raw(p7, i2, descr=nextdescr)
@@ -4898,7 +4898,7 @@
         """
         expected = """
         [p4, p7, i30]
-        i1 = getfield_raw(p7, descr=nextdescr)
+        i1 = getfield_raw_i(p7, descr=nextdescr)
         i2 = int_add(i1, i30)
         setfield_raw(p7, 7, descr=nextdescr)
         setfield_raw(p7, i2, descr=nextdescr)
diff --git a/rpython/jit/metainterp/optimizeopt/unroll.py b/rpython/jit/metainterp/optimizeopt/unroll.py
--- a/rpython/jit/metainterp/optimizeopt/unroll.py
+++ b/rpython/jit/metainterp/optimizeopt/unroll.py
@@ -24,7 +24,7 @@
             self.optimizer.inparg_dict[op] = None # XXX ARGH
             # special hack for int_add(x, accumulator-const) optimization
             self.optunroll.short_preamble_producer.use_box(op,
-                                            preamble_op.preamble_op, self)
+                                                preamble_op.preamble_op, self)
             if not preamble_op.op.is_constant():
                 self.optunroll.potential_extra_ops[op] = preamble_op
             return op


More information about the pypy-commit mailing list