From 63d425826ecebbab2869e529e5513fa1aaf65368 Mon Sep 17 00:00:00 2001 From: jdsteve2 <jdsteve2@illinois.edu> Date: Tue, 24 Mar 2020 01:20:33 -0500 Subject: [PATCH] make unused iname removal optional when remove_any_newly_unused_inames decorator is present on a transformation --- loopy/transform/iname.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/loopy/transform/iname.py b/loopy/transform/iname.py index a061ca111..1f9108bb7 100644 --- a/loopy/transform/iname.py +++ b/loopy/transform/iname.py @@ -1242,16 +1242,24 @@ def remove_unused_inames(knl, inames=None): def remove_any_newly_unused_inames(transformation_func): def wrapper(knl, *args, **kwargs): - # determine which inames were already unused - inames_already_unused = knl.all_inames() - get_used_inames(knl) - # call transform - transformed_knl = transformation_func(knl, *args, **kwargs) + # check for remove_unused_inames argument, default: True + remove_unused_inames = kwargs.pop("remove_unused_inames", True) - # Remove inames that are unused due to transform - return remove_unused_inames( - transformed_knl, - transformed_knl.all_inames()-inames_already_unused) + if remove_unused_inames: + # determine which inames were already unused + inames_already_unused = knl.all_inames() - get_used_inames(knl) + + # call transform + transformed_knl = transformation_func(knl, *args, **kwargs) + + # Remove inames that are unused due to transform + return remove_unused_inames( + transformed_knl, + transformed_knl.all_inames()-inames_already_unused) + else: + # call transform + return transformation_func(knl, *args, **kwargs) return wrapper -- GitLab