[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