Author: Richard Plangger <planri...@gmail.com> Branch: vecopt-merge Changeset: r80119:d847518f11de Date: 2015-10-12 09:23 +0200 http://bitbucket.org/pypy/pypy/changeset/d847518f11de/
Log: fixed the test suite (dependency, vecopt) diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py --- a/rpython/jit/metainterp/optimizeopt/optimizer.py +++ b/rpython/jit/metainterp/optimizeopt/optimizer.py @@ -686,7 +686,7 @@ assert pendingfields is not None if op.getdescr() is not None: descr = op.getdescr() - assert isinstance(descr, compile.ResumeAtPositionDescr) + assert isinstance(descr, compile.ResumeGuardDescr) else: descr = compile.invent_fail_descr_for_op(op.getopnum(), self) op.setdescr(descr) diff --git a/rpython/jit/metainterp/optimizeopt/test/test_dependency.py b/rpython/jit/metainterp/optimizeopt/test/test_dependency.py --- a/rpython/jit/metainterp/optimizeopt/test/test_dependency.py +++ b/rpython/jit/metainterp/optimizeopt/test/test_dependency.py @@ -7,7 +7,8 @@ IndexVar, MemoryRef, Node) from rpython.jit.metainterp.optimizeopt.vector import VectorLoop from rpython.jit.metainterp.optimizeopt.test.test_util import ( - LLtypeMixin, BaseTest, FakeMetaInterpStaticData, convert_old_style_to_targets) + LLtypeMixin, BaseTest, FakeMetaInterpStaticData, convert_old_style_to_targets, + FakeJitDriverStaticData) from rpython.jit.metainterp.resoperation import rop, ResOperation from rpython.jit.backend.llgraph.runner import ArrayDescr from rpython.jit.tool.oparser import OpParser @@ -106,9 +107,14 @@ jump = loop.operations[-1] loop = VectorLoop(label, loop.operations[0:-1], jump) loop.jump.setdescr(token) + class Optimizer(object): + metainterp_sd = FakeMetaInterpStaticData(self.cpu) + jitdriver_sd = FakeJitDriverStaticData() + opt = Optimizer() + opt.jitdriver_sd.vec = True for op in loop.operations: if op.is_guard() and not op.getdescr(): - descr = invent_fail_descr_for_op(op.getopnum(), None) + descr = invent_fail_descr_for_op(op.getopnum(), opt) op.setdescr(descr) return loop diff --git a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py --- a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py +++ b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py @@ -1315,118 +1315,6 @@ except NotAVectorizeableLoop: pass - def test_axis_sum(self): - # TODO - trace = """ - [i1, p10, i11, p8, i12, p3, p4, p13, i14, i15, p6, p9, i16, i17, i18, i19, i20, i21, i22, i23] - f24 = raw_load_f(i16, i12, descr=floatarraydescr) - guard_not_invalidated() [i1, p9, p8, p6, p4, p3, f24, i11, i15, p13, i12, i14, p10] - i26 = int_add(i12, 8) - i27 = getarrayitem_gc_f(p13, i1, descr=floatarraydescr) - i28 = int_is_zero(i27) - guard_false(i28) [i1, p9, p8, p6, p4, p3, f24, i26, i11, i15, p13, None, i14, p10] - f30 = raw_load_f(i17, i15, descr=floatarraydescr) - f31 = float_add(f30, f24) - raw_store(i18, i15, f31, descr=floatarraydescr) - i33 = int_add(i14, 1) - i34 = getarrayitem_gc_f(p13, i19, descr=floatarraydescr) - i35 = int_lt(i34, i20) - guard_true(i35) [i1, p9, p8, p6, p4, p3, i21, i34, i15, i33, i19, p13, f31, None, i26, i11, None, None, None, i14, p10] - i37 = int_add(i34, 1) - setarrayitem_gc(p13, i19, i37, descr=floatarraydescr) - i38 = int_add(i15, i22) - i39 = int_ge(i33, i23) - guard_false(i39) [i1, p9, p8, p6, p4, p3, i33, i38, None, None, i26, i11, None, p13, None, None, p10] - jump(i1, p10, i11, p8, i26, p3, p4, p13, i33, i38, p6, p9, i16, i17, i18, i19, i20, i21, i22, i23) - """ - loop = self.parse_loop(trace) - self.vectorize(loop) - - def test_cast_1(self): - # TODO - trace = self.parse_loop(""" - [i9, i10, p2, p11, i12, i13, p4, p5, p14, i15, p8, i16, p17, i18, i19, i20, i21, i22, i23] - i24 = raw_load_i(i20, i16, descr=float32arraydescr) - guard_not_invalidated() [p8, p5, p4, p2, i24, p17, i13, i12, i10, i19, p14, p11, i18, i15, i16, None] - i27 = int_add(i16, 4) - i28 = raw_load_i(i21, i19, descr=float32arraydescr) - i30 = int_add(i19, 4) - f31 = cast_singlefloat_to_float(i24) - f32 = cast_singlefloat_to_float(i28) - f33 = float_add(f31, f32) - i34 = cast_float_to_singlefloat(f33) - raw_store(i22, i13, i34, descr=float32arraydescr) - i36 = int_add(i12, 1) - i38 = int_add(i13, 4) - i39 = int_ge(i36, i23) - guard_false(i39) [p8, p5, p4, p2, i27, i28, i30, i24, i38, i36, p17, None, None, None, None, p14, p11, i18, i15, None, None] - jump(i24, i28, p2, p11, i36, i38, p4, p5, p14, i15, p8, i27, p17, i18, i30, i20, i21, i22, i23) - """) - opt = self.vectorize(trace) - self.debug_print_operations(trace) - - def test_truediv_abs_neg_float(self): - # TODO - trace = self.parse_loop(""" - [f9,p10,i11,p4,i12,p2,p5,p13,i14,p7,i15,p8,i16,f17,i18,i19] - f20 = raw_load_f(i16, i12, descr=floatarraydescr) - guard_not_invalidated() [p8, p7, p5, p4, p2, f20, None, i12, i11, p10, i15, i14, p13] - i23 = int_add(i12, 8) - f24 = float_truediv(f20, f17) - f25 = float_abs(f20) - f26 = float_neg(f20) - raw_store(i18, i15, f24, descr=floatarraydescr) - i26 = int_add(i14, 1) - i28 = int_add(i15, 8) - i29 = int_ge(i26, i19) - guard_false(i29) [p8, p7, p5, p4, p2, f20, i23, i28, None, p13] - jump(f20, p10, i11, p4, i23, p2, p5, p13, i26, p7, i28, p8, i16, f17, i18, i19) - """) - opt = self.vectorize(trace) - self.debug_print_operations(trace) - - - def test_all_guard(self): - # TODO - trace = """ - [p0, p3, i4, i5, i6, i7] - f8 = raw_load_f(i6, i5, descr=floatarraydescr) - guard_not_invalidated() [p0, f8, p3, i5, i4] - i9 = cast_float_to_int(f8) - i11 = int_and(i9, 255) - guard_false(i11) [p0, p3, i5, i4] - i13 = int_add(i4, 1) - i15 = int_add(i5, 8) - i16 = int_ge(i13, i7) - guard_false(i16) [p0, i13, i15, p3, None, None] - jump(p0, p3, i13, i15, i6, i7) - """ - loop = self.parse_loop(trace) - opt = self.vectorize(loop) - self.debug_print_operations(loop) - - def test_111(self): - trace = """ - [p0, p1, p2, p3, i4, p5, p6, p7, i8, p9, i10, p11] - guard_not_invalidated(descr=<ResumeGuardNotInvalidated object at 0x7f4dec0129f8>) [p1, p0, p2, p3, p5, p6, i4] - i12 = int_lt(i4, i8) - guard_true(i12, descr=<ResumeGuardTrueDescr object at 0x7f4dec012a70>) [p1, p0, p2, p3, p5, p6, i8, i4] - i13 = uint_ge(i4, i10) - guard_false(i13, descr=<ResumeGuardFalseDescr object at 0x7f4dec012ae8>) [p1, p0, i10, i4, p9, p2, p3, p5, p6, None, None] - i15 = getarrayitem_gc_i(p11, i4, descr=arraydescr) - i17 = int_add_ovf(i15, 1) - guard_no_overflow(descr=<ResumeGuardNoOverflowDescr object at 0x7f4dec012b60>) [p1, p0, i17, p2, p3, p5, p6, i15, None, i4] - setarrayitem_gc(p11, i4, i17, descr=arraydescr) - i19 = int_add(i4, 1) - i21 = getfield_raw_i(139972894828928, descr=<FieldS pypysig_long_struct.c_value 0>) - i23 = int_lt(i21, 0) - guard_false(i23, descr=<ResumeGuardFalseDescr object at 0x7f4dec012bd8>) [p1, p0, p2, p3, p5, p6, i19, None, None, None] - i24 = arraylen_gc(p11, descr=arraydescr) - jump(p0, p1, p2, p3, i19, p5, p6, p7, i8, p9, i10, p11) - """ - loop = self.parse_loop(trace) - opt = self.schedule(loop, with_guard_opt=True) - self.debug_print_operations(loop) class TestLLtype(BaseTestVectorize, LLtypeMixin): pass diff --git a/rpython/jit/metainterp/optimizeopt/vector.py b/rpython/jit/metainterp/optimizeopt/vector.py --- a/rpython/jit/metainterp/optimizeopt/vector.py +++ b/rpython/jit/metainterp/optimizeopt/vector.py @@ -84,7 +84,6 @@ prefix_label = self.prefix_label.copy() renamer.rename(prefix_label) oplist = [] - op1 = self.operations[2] for op in self.operations: newop = op.copy() renamer.rename(newop) diff --git a/rpython/jit/metainterp/resoperation.py b/rpython/jit/metainterp/resoperation.py --- a/rpython/jit/metainterp/resoperation.py +++ b/rpython/jit/metainterp/resoperation.py @@ -81,6 +81,10 @@ def is_vector(self): return False + def returns_void(self): + return False + + def ResOperation(opnum, args, descr=None): cls = opclasses[opnum] op = cls() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit