Author: Richard Plangger <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit