From 1980520b3533ef6f081294fa8cb41625a92a065f Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Mon, 25 Jan 2016 23:09:06 -0600
Subject: [PATCH] Prevent infinite recursion in automatic axis assignment

---
 loopy/kernel/tools.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py
index 67c703136..46b301b47 100644
--- a/loopy/kernel/tools.py
+++ b/loopy/kernel/tools.py
@@ -773,9 +773,12 @@ def assign_automatic_axes(kernel, axis=0, local_size=None):
             desired_length = kernel.get_constant_iname_length(iname)
         except isl.Error:
             # Likely unbounded, automatic assignment is not
-            # going to happen for this iname
-            return assign_automatic_axes(kernel,
-                    axis=recursion_axis, local_size=local_size)
+            # going to happen for this iname.
+            new_iname_to_tag = kernel.iname_to_tag.copy()
+            new_iname_to_tag[iname] = None
+            return assign_automatic_axes(
+                    kernel.copy(iname_to_tag=new_iname_to_tag),
+                    axis=recursion_axis)
 
         if axis is None:
             # {{{ find a suitable axis
-- 
GitLab