Author: Richard Plangger <[email protected]>
Branch: ppc-vsx-support
Changeset: r85776:a2551c202077
Date: 2016-07-20 13:46 +0200
http://bitbucket.org/pypy/pypy/changeset/a2551c202077/
Log: add test to reproduce failure at runtime. compute_vars_longevity
disallows const values in the fail args
diff --git a/rpython/jit/backend/x86/runner.py
b/rpython/jit/backend/x86/runner.py
--- a/rpython/jit/backend/x86/runner.py
+++ b/rpython/jit/backend/x86/runner.py
@@ -7,6 +7,7 @@
from rpython.jit.backend.x86.profagent import ProfileAgent
from rpython.jit.backend.llsupport.llmodel import AbstractLLCPU
from rpython.jit.backend.x86 import regloc
+from rpython.jit.backend.x86.vector_ext import X86VectorExt
import sys
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
@@ -1361,30 +1361,28 @@
'guard_true(i100) [p0, i0]',
], trace)
- def test_guard_failarg_do_not_rename_to_const(Self):
+ def test_guard_failarg_do_not_rename_to_const(self):
# Loop -2 (pre vectorize) : noopt with 15 ops
trace = self.parse_loop("""
- []
- label(p0, p1, p2, p3, p4, i5, i6, p7, p8, p9, p10, i11, i12, f13, p14,
p15, i16, i17, descr=TargetToken(70367324045984))
- debug_merge_point(0, 0, '(numpy_call2_inc_out_right: no
get_printable_location)')
+ [p0, p1, p2, p3, p4, i5, i6, p7, p8, p9, p10, i11, i12, f13, p14, p15,
i16, i17]
i19 = int_and(i6, 7)
i20 = int_is_zero(i19)
guard_true(i20, descr=<ResumeGuardDescr object at 0x3fffab60d7b0>)
[p7, p3, p2, p1, p0, p8, p10, i11, i19, i6, i12, i5, p4]
- f21 = raw_load_f(i12, i6, descr=<ArrayF 8>)
+ f21 = raw_load_f(i12, i6, descr=floatarraydescr)
guard_not_invalidated(descr=<ResumeGuardCopiedDescr object at
0x3fffab5fcde8>) [p7, p3, p2, p1, p0, p8, p10, i11, i19, i6, i12, i5, p4]
f22 = float_mul(f21, f13)
- raw_store(i16, i6, f22, descr=<ArrayF 8>)
+ raw_store(i16, i6, f22, descr=floatarraydescr)
i24 = int_add(i5, 1)
i26 = int_add(i6, 8)
i27 = int_ge(i24, i17)
- guard_false(i27, descr=<ResumeGuardDescr object at 0x3fffab60d818>)
[i17, i24, p7, p3, p2, p1, p0, i26, None, p4]
- debug_merge_point(0, 0, '(numpy_call2_inc_out_right: no
get_printable_location)')
- jump(p0, p1, p2, p3, p4, i24, i26, p7, p8, p9, p10, 1, i12, f13, p14,
p15, i16, i17, descr=TargetToken(70367324045984))
+ guard_false(i27) [i17, i24, p7, p3, p2, p1, p0, i26, None, p4]
+ jump(p0, p1, p2, p3, p4, i24, i26, p7, p8, p9, p10, 1, i12, f13, p14,
p15, i16, i17)
""")
vopt = self.schedule(trace)
- import pdb; pdb.set_trace()
-
-
+ for op in trace.operations:
+ if op.is_guard():
+ for arg in op.getfailargs():
+ assert not arg.is_constant()
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
@@ -314,6 +314,9 @@
assert isinstance(descr, ResumeDescr)
copied_op.setdescr(descr.clone())
failargs = renamer.rename_failargs(copied_op, clone=True)
+ if not we_are_translated():
+ for arg in failargs:
+ assert not arg.is_constant()
copied_op.setfailargs(failargs)
def linear_find_smallest_type(self, loop):
@@ -550,7 +553,11 @@
if op.getdescr():
descr.copy_all_attributes_from(op.getdescr())
op.setdescr(descr)
- op.setfailargs(loop.label.getarglist_copy())
+ arglistcopy = loop.label.getarglist_copy()
+ if not we_are_translated():
+ for arg in arglistcopy:
+ assert not arg.is_constant()
+ op.setfailargs(arglistcopy)
class CostModel(object):
""" Utility to estimate the savings for the new trace loop.
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit