From 61cf96ad6944bff6736f1059c1e7adafd8a64902 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Wed, 21 Jun 2017 08:46:42 -0500
Subject: [PATCH] Fix ISPC temporary privatization [ci skip]

---
 loopy/target/ispc.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/loopy/target/ispc.py b/loopy/target/ispc.py
index 80a69bd00..35dade904 100644
--- a/loopy/target/ispc.py
+++ b/loopy/target/ispc.py
@@ -32,6 +32,7 @@ from loopy.diagnostic import LoopyError
 from loopy.symbolic import Literal
 from pymbolic import var
 import pymbolic.primitives as p
+from loopy.kernel.data import temp_var_scope
 from pymbolic.mapper.stringifier import PREC_NONE
 
 from pytools import memoize_method
@@ -81,7 +82,6 @@ class ExprToISPCExprMapper(ExpressionToCExpressionMapper):
     def map_variable(self, expr, type_context):
         tv = self.kernel.temporary_variables.get(expr.name)
 
-        from loopy.kernel.data import temp_var_scope
         if tv is not None and tv.scope == temp_var_scope.PRIVATE:
             # FIXME: This is a pretty coarse way of deciding what
             # private temporaries get duplicated. Refine? (See also
@@ -101,7 +101,10 @@ class ExprToISPCExprMapper(ExpressionToCExpressionMapper):
 
         ary = self.find_array(expr)
 
-        if isinstance(ary, TemporaryVariable):
+        if (isinstance(ary, TemporaryVariable)
+                and ary.scope == temp_var_scope.PRIVATE):
+            # generate access code for acccess to private-index temporaries
+
             gsize, lsize = self.kernel.get_grid_size_upper_bounds_as_exprs()
             if lsize:
                 lsize, = lsize
@@ -305,7 +308,6 @@ class ISPCASTBuilder(CASTBuilder):
 
         shape = decl_info.shape
 
-        from loopy.kernel.data import temp_var_scope
         if temp_var.scope == temp_var_scope.PRIVATE:
             # FIXME: This is a pretty coarse way of deciding what
             # private temporaries get duplicated. Refine? (See also
-- 
GitLab