Skip to content
Snippets Groups Projects
Commit 1776d4ae authored by Andreas Klöckner's avatar Andreas Klöckner
Browse files

Ensure all integers are non-numpy (for Boost.Python PyOpenCL)

parent 152158f8
Branches
Tags
No related merge requests found
...@@ -192,7 +192,7 @@ def generate_integer_arg_finding_from_shapes(gen, kernel, implemented_data_info) ...@@ -192,7 +192,7 @@ def generate_integer_arg_finding_from_shapes(gen, kernel, implemented_data_info)
for arg_name, value_expr in sources: for arg_name, value_expr in sources:
gen("%s %s is not None:" % (if_stmt, arg_name)) gen("%s %s is not None:" % (if_stmt, arg_name))
with Indentation(gen): with Indentation(gen):
gen("%s = %s" gen("%s = int(%s)"
% (iarg_name, StringifyMapper()(value_expr))) % (iarg_name, StringifyMapper()(value_expr)))
if_stmt = "elif" if_stmt = "elif"
...@@ -226,10 +226,10 @@ def generate_integer_arg_finding_from_offsets(gen, kernel, implemented_data_info ...@@ -226,10 +226,10 @@ def generate_integer_arg_finding_from_offsets(gen, kernel, implemented_data_info
gen("else:") gen("else:")
with Indentation(gen): with Indentation(gen):
if not options.no_numpy: if not options.no_numpy:
gen("_lpy_offset = getattr(%s, \"offset\", 0)" gen("_lpy_offset = int(getattr(%s, \"offset\", 0))"
% impl_array_name) % impl_array_name)
else: 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] 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 ...@@ -242,7 +242,7 @@ def generate_integer_arg_finding_from_offsets(gen, kernel, implemented_data_info
% impl_array_name) % impl_array_name)
gen("del _lpy_remdr") gen("del _lpy_remdr")
else: else:
gen("%s = _lpy_offset // %d)" gen("%s = _lpy_offset // %d"
% (arg.name, base_arg.dtype.itemsize)) % (arg.name, base_arg.dtype.itemsize))
if not options.skip_arg_checks: if not options.skip_arg_checks:
...@@ -287,11 +287,9 @@ def generate_integer_arg_finding_from_strides(gen, kernel, implemented_data_info ...@@ -287,11 +287,9 @@ def generate_integer_arg_finding_from_strides(gen, kernel, implemented_data_info
"not divisible by its dtype itemsize\"" "not divisible by its dtype itemsize\""
% (stride_impl_axis, impl_array_name)) % (stride_impl_axis, impl_array_name))
gen("del _lpy_remdr") gen("del _lpy_remdr")
gen("%s = int(%s)" % (arg.name, arg.name))
else: else:
gen("%s = divmod(%s.strides[%d], %d)" gen("%s = int(_lpy_offset // %d)"
% (arg.name, impl_array_name, stride_impl_axis,
base_arg.dtype.itemsize))
gen("%s = _lpy_offset // %d)"
% (arg.name, base_arg.dtype.itemsize)) % (arg.name, base_arg.dtype.itemsize))
gen("# }}}") gen("# }}}")
......
...@@ -657,4 +657,6 @@ class PyOpenCLCASTBuilder(OpenCLCASTBuilder): ...@@ -657,4 +657,6 @@ class PyOpenCLCASTBuilder(OpenCLCASTBuilder):
# }}} # }}}
# }}} # }}}
# vim: foldmethod=marker # vim: foldmethod=marker
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment