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

remove_unused_arguments: Consider uses in data shapes/offsets/strides

parent 971f3759
No related branches found
No related tags found
No related merge requests found
...@@ -353,6 +353,26 @@ def remove_unused_arguments(knl): ...@@ -353,6 +353,26 @@ def remove_unused_arguments(knl):
for insn in exp_knl.instructions: for insn in exp_knl.instructions:
refd_vars.update(insn.dependency_names()) refd_vars.update(insn.dependency_names())
from loopy.kernel.array import ArrayBase, FixedStrideArrayDimTag
from loopy.symbolic import get_dependencies
from itertools import chain
def tolerant_get_deps(expr):
if expr is None or expr is lp.auto:
return set()
return get_dependencies(expr)
for ary in chain(knl.args, six.itervalues(knl.temporary_variables)):
if isinstance(ary, ArrayBase):
refd_vars.update(
tolerant_get_deps(ary.shape)
| tolerant_get_deps(ary.offset))
for dim_tag in ary.dim_tags:
if isinstance(dim_tag, FixedStrideArrayDimTag):
refd_vars.update(
tolerant_get_deps(dim_tag.stride))
for arg in knl.args: for arg in knl.args:
if arg.name in refd_vars: if arg.name in refd_vars:
new_args.append(arg) new_args.append(arg)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment