diff --git a/loopy/target/pyopencl.py b/loopy/target/pyopencl.py index f24b115fd5a35af94e4a6d437550bccf86b5bee0..9955705a2fbca26d12dad95b45d2f547ad778568 100644 --- a/loopy/target/pyopencl.py +++ b/loopy/target/pyopencl.py @@ -441,7 +441,9 @@ def generate_value_arg_setup(kernel, devices, implemented_data_info): warn("{knl_name}: device not supplied to PyOpenCLTarget--" "workarounds for broken OpenCL implementations " "(such as those relating to complex numbers) " - "may not be enabled when needed" + "may not be enabled when needed. To avoid this, " + "pass target=lp.PyOpenCLTarget(dev) when creating " + "the kernel." .format(knl_name=kernel.name)) if any(count_bug_per_dev): diff --git a/loopy/transform/iname.py b/loopy/transform/iname.py index d3285a417f4f0bde9b5d023d4ca1816a5fa2f0f3..2347cef3c04d2a44cef91782700e097a20e19712 100644 --- a/loopy/transform/iname.py +++ b/loopy/transform/iname.py @@ -910,7 +910,7 @@ def _get_iname_duplication_options(insn_iname_sets, old_common_inames=frozenset( iname_insns = frozenset( insn for insn in insn_iname_sets - if frozenset([iname]).issubset(insn)) + if frozenset([iname]) <= insn) import itertools as it # For a given iname, the set of instructions containing this iname @@ -921,7 +921,7 @@ def _get_iname_duplication_options(insn_iname_sets, old_common_inames=frozenset( for l in range(1, len(iname_insns))): yield ( iname, - tuple(insn.union(old_common_inames) for insn in insns_to_dup)) + tuple(insn | old_common_inames for insn in insns_to_dup)) # If partitioning was empty, we have recursed successfully and yield nothing