From 1776d4ae6b45ce5273d76b4ed475aa9d5f293dd7 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Tue, 17 May 2016 00:43:25 -0500 Subject: [PATCH] Ensure all integers are non-numpy (for Boost.Python PyOpenCL) --- loopy/compiled.py | 14 ++++++-------- loopy/target/pyopencl.py | 2 ++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/loopy/compiled.py b/loopy/compiled.py index a30e4b133..3ef3ee27d 100644 --- a/loopy/compiled.py +++ b/loopy/compiled.py @@ -192,7 +192,7 @@ def generate_integer_arg_finding_from_shapes(gen, kernel, implemented_data_info) for arg_name, value_expr in sources: gen("%s %s is not None:" % (if_stmt, arg_name)) with Indentation(gen): - gen("%s = %s" + gen("%s = int(%s)" % (iarg_name, StringifyMapper()(value_expr))) if_stmt = "elif" @@ -226,10 +226,10 @@ def generate_integer_arg_finding_from_offsets(gen, kernel, implemented_data_info gen("else:") with Indentation(gen): if not options.no_numpy: - gen("_lpy_offset = getattr(%s, \"offset\", 0)" + gen("_lpy_offset = int(getattr(%s, \"offset\", 0))" % impl_array_name) else: - gen("_lpy_offset = %s.offset" % impl_array_name) + gen("_lpy_offset = int(%s.offset)" % impl_array_name) base_arg = kernel.impl_arg_to_arg[impl_array_name] @@ -242,7 +242,7 @@ def generate_integer_arg_finding_from_offsets(gen, kernel, implemented_data_info % impl_array_name) gen("del _lpy_remdr") else: - gen("%s = _lpy_offset // %d)" + gen("%s = _lpy_offset // %d" % (arg.name, base_arg.dtype.itemsize)) if not options.skip_arg_checks: @@ -287,11 +287,9 @@ def generate_integer_arg_finding_from_strides(gen, kernel, implemented_data_info "not divisible by its dtype itemsize\"" % (stride_impl_axis, impl_array_name)) gen("del _lpy_remdr") + gen("%s = int(%s)" % (arg.name, arg.name)) else: - gen("%s = divmod(%s.strides[%d], %d)" - % (arg.name, impl_array_name, stride_impl_axis, - base_arg.dtype.itemsize)) - gen("%s = _lpy_offset // %d)" + gen("%s = int(_lpy_offset // %d)" % (arg.name, base_arg.dtype.itemsize)) gen("# }}}") diff --git a/loopy/target/pyopencl.py b/loopy/target/pyopencl.py index b5bd7b63a..7939dc764 100644 --- a/loopy/target/pyopencl.py +++ b/loopy/target/pyopencl.py @@ -657,4 +657,6 @@ class PyOpenCLCASTBuilder(OpenCLCASTBuilder): # }}} # }}} + + # vim: foldmethod=marker -- GitLab