Author: Maciej Fijalkowski <fij...@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, _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit