From a0a7be9b9f0cc8a3ace4bb0c3541b02ba9e5c02b Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Sun, 19 Apr 2015 21:25:26 -0500
Subject: [PATCH] Make sure user-visible layout nesting levels are non-negative

---
 loopy/kernel/array.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/loopy/kernel/array.py b/loopy/kernel/array.py
index ee14042d1..233d1a0f7 100644
--- a/loopy/kernel/array.py
+++ b/loopy/kernel/array.py
@@ -342,6 +342,14 @@ def parse_array_dim_tags(dim_tags, use_increasing_target_axes=False):
                             for nl in ta_nesting_levels),
                         target_axis))
 
+        ta_nesting_level_increment = -min(ta_nesting_levels)
+        for i in range(len(result)):
+            if (isinstance(result[i], _StrideArrayDimTagBase)
+                    and result[i].target_axis == target_axis):
+                result[i] = result[i].copy(
+                        layout_nesting_level=result[i].layout_nesting_level
+                        + ta_nesting_level_increment)
+
     # }}}
 
     return result
-- 
GitLab