Author: Richard Plangger <[email protected]>
Branch: vecopt
Changeset: r78107:3038636d0684
Date: 2015-06-15 10:49 +0200
http://bitbucket.org/pypy/pypy/changeset/3038636d0684/
Log: jit.promote in the numpy internal iterator generates slightly
different traces, adjusted tests with the new constant
diff --git a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
--- a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
@@ -14,6 +14,7 @@
assert len(log.loops) == 1
loop = log._filter(log.loops[0])
assert loop.match("""
+ ...
guard_class(p0, #, descr=...)
p4 = getfield_gc_pure(p0, descr=<FieldP
pypy.module.micronumpy.iterators.ArrayIter.inst_array \d+>)
i5 = getfield_gc(p2, descr=<FieldS
pypy.module.micronumpy.iterators.IterState.inst_offset \d+>)
@@ -40,7 +41,8 @@
i26 = int_is_true(i25)
guard_true(i26, descr=...)
i27 = getfield_gc_pure(p6, descr=<FieldS
pypy.module.micronumpy.descriptor.W_Dtype.inst_elsize \d+>)
- i28 = int_add(i5, i27)
+ guard_value(i27, 8, descr=...)
+ i28 = int_add(i5, 8)
i29 = getfield_gc_pure(p0, descr=<FieldS
pypy.module.micronumpy.iterators.ArrayIter.inst_size \d+>)
i30 = int_ge(i23, i29)
guard_false(i30, descr=...)
@@ -65,6 +67,7 @@
assert len(log.loops) == 1
loop = log._filter(log.loops[0])
assert loop.match("""
+ ...
f31 = raw_load(i9, i29, descr=<ArrayF 8>)
guard_not_invalidated(descr=...)
i34 = getarrayitem_raw(#, #, descr=<ArrayU 1>) # XXX what are
these?
@@ -73,7 +76,7 @@
guard_true(i32, descr=...)
i35 = getarrayitem_raw(#, #, descr=<ArrayU 1>) # XXX equiv
test_zjit
i36 = int_add(i24, 1)
- i37 = int_add(i29, i28)
+ i37 = int_add(i29, 8)
i38 = int_ge(i36, i30)
guard_false(i38, descr=...)
guard_value(i35, #, descr=...) # XXX
@@ -175,7 +178,7 @@
guard_false(i88, descr=...)
f90 = raw_load(i67, i89, descr=<ArrayF 8>)
i91 = int_add(i87, 1)
- i93 = int_add(i89, i76)
+ i93 = int_add(i89, 8)
i94 = int_add(i79, 1)
i95 = getfield_raw(#, descr=<FieldS pypysig_long_struct.c_value 0>)
setfield_gc(p97, i91, descr=<FieldS
pypy.module.micronumpy.iterators.IterState.inst_index .+>)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
b/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_vectorize.py
@@ -1375,8 +1375,22 @@
def test_abc(self):
- py.test.skip()
trace ="""
+ [p0, p1, p5, p6, p7, p17, p19, i46, i37, i41]
+ guard_not_invalidated() [p1, p0, p5, p6, p7, p17, p19]
+ i59 = int_lt(i46, i37)
+ guard_true(i59) [p1, p0, i46, p5, p6, p7, p17, p19]
+ f60 = getarrayitem_raw(i41, i46, descr=floatarraydescr)
+ f61 = float_add(f60, 1.000000)
+ setarrayitem_raw(i41, i46, f61, descr=floatarraydescr)
+ i62 = int_add(i46, 1)
+ setfield_gc(50, i62, descr=<FieldS
pypy.objspace.std.typeobject.IntMutableCell.inst_intvalue 8>)
+ i63 = int_ge(i62, 2024)
+ guard_false(i63) [p1, p0, p5, p6, p7, p17, p19, i62]
+ i64 = getfield_raw(140099887568000, descr=<FieldS
pypysig_long_struct.c_value 0>)
+ i65 = int_lt(i64, 0)
+ guard_false(i65) [p1, p0, p5, p6, p7, p17, p19, None]
+ jump(p0, p1, p5, p6, p7, p17, p19, i62, i37, i41)
"""
opt = self.vectorize(self.parse_loop(trace))
self.debug_print_operations(opt.loop)
diff --git a/rpython/jit/tool/jitoutput.py b/rpython/jit/tool/jitoutput.py
--- a/rpython/jit/tool/jitoutput.py
+++ b/rpython/jit/tool/jitoutput.py
@@ -26,6 +26,8 @@
(('nvirtuals',), '^nvirtuals:\s+(\d+)$'),
(('nvholes',), '^nvholes:\s+(\d+)$'),
(('nvreused',), '^nvreused:\s+(\d+)$'),
+ (('vecopt_tried',), '^vecopt tried:\s+(\d+)$'),
+ (('vecopt_success',), '^vecopt success:\s+(\d+)$'),
(('total_compiled_loops',), '^Total # of loops:\s+(\d+)$'),
(('total_compiled_bridges',), '^Total # of bridges:\s+(\d+)$'),
(('total_freed_loops',), '^Freed # of loops:\s+(\d+)$'),
@@ -57,6 +59,8 @@
nvirtuals = 0
nvholes = 0
nvreused = 0
+ vecopt_tried = 0
+ vecopt_success = 0
def __init__(self):
self.ops = Ops()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit