diff --git a/loopy/transform/iname.py b/loopy/transform/iname.py index 8e6f57cc83c52311b074342c4c589f9c5cd99119..53c4a05756b2697657a5a98730e7fab1ef7705f1 100644 --- a/loopy/transform/iname.py +++ b/loopy/transform/iname.py @@ -920,6 +920,12 @@ def get_iname_duplication_options(knl, use_boostable_into=False): # Get the duplication options as a tuple of iname and a set for iname, insns in _get_iname_duplication_options(insn_deps): + # Check whether this iname has a parallel tag and discard it if so + from loopy.kernel.data import ParallelTag + if (iname in knl.iname_to_tag + and isinstance(knl.iname_to_tag[iname], ParallelTag)): + continue + # If we find a duplication option and fo not use boostable_into # information, we restart this generator with use_boostable_into=True if not use_boostable_into: @@ -927,12 +933,6 @@ def get_iname_duplication_options(knl, use_boostable_into=False): yield option return - # Check whether this iname has a parallel tag and discard it if so - from loopy.kernel.data import ParallelTag - if (iname in knl.iname_to_tag - and isinstance(knl.iname_to_tag[iname], ParallelTag)): - continue - # Reconstruct an object that may be passed to the within parameter of # loopy.duplicate_inames from loopy.match import Id, Or