From 35241a0a61e47cfb8572efcd79861587f77e2964 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Fri, 19 Aug 2016 16:49:19 +0200
Subject: [PATCH] First discard parallel inames, then try use_boostable_into

---
 loopy/transform/iname.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/loopy/transform/iname.py b/loopy/transform/iname.py
index 8e6f57cc8..53c4a0575 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
-- 
GitLab