[pypy-commit] pypy optresult-unroll: fix this test

fijal noreply at buildbot.pypy.org
Tue Aug 11 16:56:52 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r78912:ee4ba9d13eb1
Date: 2015-08-11 15:57 +0200
http://bitbucket.org/pypy/pypy/changeset/ee4ba9d13eb1/

Log:	fix this test

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
@@ -3297,40 +3297,40 @@
     def test_ovf_guard_in_short_preamble2(self):
         ops = """
         [p8, p11, p12]
-        p16 = getfield_gc_r(p8, descr=valuedescr)
-        i17 = getfield_gc_i(p8, descr=nextdescr)
+        p16 = getfield_gc_r(p8, descr=nextdescr)
+        i17 = getfield_gc_i(p8, descr=valuedescr)
         i19 = getfield_gc_i(p16, descr=valuedescr)
         i20 = int_ge(i17, i19)
         guard_false(i20) []
-        i21 = getfield_gc_i(p16, descr=otherdescr)
-        i22 = getfield_gc_i(p16, descr=nextdescr)
+        i21 = getfield_gc_i(p16, descr=chardescr)
+        i22 = getfield_gc_i(p16, descr=valuedescr)
         i23 = int_mul(i17, i22)
         i24 = int_add(i21, i23)
-        p26 = new_with_vtable(descr=nodesize)
+        p26 = new(descr=ssize)
         setfield_gc(p26, i24, descr=adescr)
         i28 = int_add(i17, 1)
-        setfield_gc(p8, i28, descr=nextdescr)
-        i34 = getfield_gc_pure_i(p11, descr=valuedescr)
+        setfield_gc(p8, i28, descr=valuedescr)
+        i34 = getfield_gc_pure_i(p11, descr=valuedescr3)
         i35 = getfield_gc_pure_i(p26, descr=adescr)
         guard_nonnull(p12) []
         i36 = int_add_ovf(i34, i35)
         guard_no_overflow() []
-        p38 = new_with_vtable(descr=nodesize)
+        p38 = new(descr=ssize)
         setfield_gc(p38, i36, descr=adescr)
         jump(p8, p11, p26)
         """
         expected = """
-        [p8, p11, i24, i39, i19, p16, i21, i34]
-        i40 = int_ge(i39, i19)
-        guard_false(i40) []
-        i41 = getfield_gc_i(p16, descr=nextdescr)
-        i42 = int_mul(i39, i41)
-        i43 = int_add(i21, i42)
-        i44 = int_add(i39, 1)
-        setfield_gc(p8, i44, descr=nextdescr)
-        i45 = int_add_ovf(i34, i43)
+        [p0, p1, i9, p3, i10, i7, i11]
+        i13 = getfield_gc_i(p3, descr=valuedescr)
+        i14 = int_ge(i10, i13)
+        guard_false(i14) []
+        i15 = int_mul(i10, i13)
+        i16 = int_add(i7, i15)
+        i17 = int_add(i10, 1)
+        setfield_gc(p0, i17, descr=valuedescr)
+        i18 = int_add_ovf(i11, i16)
         guard_no_overflow() []
-        jump(p8, p11, i43, i44, i19, p16, i21, i34)
+        jump(p0, p1, i16, p3, i17, i7, i11)
         """
         self.optimize_loop(ops, expected)
 
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
@@ -34,6 +34,12 @@
             if i is not None:
                 self.setinfo_from_preamble(item, i, infos)
 
+    def is_inputarg(self, op):
+        if self.optunroll.short_preamble_producer is None:
+            return op in self.inparg_dict
+        return (op in self.inparg_dict or
+                op in self.optunroll.short_preamble_producer.used_boxes)
+
     def setinfo_from_preamble(self, op, preamble_info, exported_infos):
         op = self.get_box_replacement(op)
         if isinstance(preamble_info, info.PtrInfo):
@@ -71,6 +77,7 @@
     distinction anymore)"""
 
     ops_to_import = None
+    short_preamble_producer = None
 
     def __init__(self, metainterp_sd, jitdriver_sd, optimizations):
         self.optimizer = UnrollableOptimizer(metainterp_sd, jitdriver_sd,


More information about the pypy-commit mailing list